程序员代码面试指南 2.3:删除链表的中间节点
1、思路
删除第
K个节点,往前走K - 1步再跳过下一节点即可;要注意删除第一个节点的情况,所以声明了一个虚拟头结点。
2、代码
list_node * remove_kth_node(list_node * head, int K)
{
if (head == nullptr || head->next == nullptr) return head;
auto dummy = new list_node();
dummy->next = head; //链表前面还有一个虚拟头结点
while ( -- K > 0) dummy = dummy->next;
dummy->next = dummy->next->next; //跳过下一节点
return head;
}
程序员代码面试指南(C++版题解) 文章被收录于专栏
主要是为左程云的《程序员代码面试指南》这本书改写C++版的题解。

