移除单链表的第k个前驱节点
发布时间
阅读量:
阅读量
单链表倒数第k个节点删除方法
题目:
移除单链表中从末尾起第k个节点
解题思路及算法代码:
采用标尺法时,需设置两个指针均指向链表的起始节点,首先使其中一个指针向前移动k个位置,随后两个指针同步前进。当率先移动的指针抵达链表末端时,另一指针所处的位置即为待删除节点所在的位置。
单链表结构定义:
typedef struct Node
{
int data;
struct Node* next;
}node, *pLinkedList;
移除列表末尾第K个节点的实现代码:
//head表示头结点
Node* removeLastKthNode(pLinkedList head, int k)
{
if (NULL == head->next || k < 1)
return head;
pLinkedList cur = head; //1号指针
pLinkedList ret = head; //2号指针,指向待删除节点
pLinkedList pre = NULL; //pdel待删除节点
全部评论 (0)
还没有任何评论哟~
