int len = 0; while(getLen){ // 获取链表长度 getLen = getLen->next; len++; } len = len - n; for(int i = 0; i < len; i++){ // 找到需要移除节点的前一个节点 delNode = delNode->next; }
delNode->next = delNode->next->next; // 删除节点
return virtualHead->next; // 返回头节点 } };
只要明白链表的特性,以及删除的特点就很容易想到该怎么处理这道题,不会想复杂。我们要删除链表的倒数第 N 个节点,只需要找到这个节点的前一个节点,因为删除链表节点的准则就是找到待删除节点的前一个节点。由于我们是要找倒数第 N 个节点,就要先获取链表长度(只能遍历一次得到),然后len = len - n计算出 len ,用于找到待删除节点的前一个节点。