typedef struct Node
{
int data;
struct Node* next;
}node, *pLinkedList;
//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待删除节点的前一个节点
/*
head 1 2 3 4 5
cur
ret
*/
while (k > 0 && cur != NULL)
{
k--;
cur = cur->next;
}
//当链表走到终点时,k仍然大于0,可知k值大于链表长度
if (k > 0 && cur == NULL)
{
cout << "k值大于链表长度" << endl;
return head;
}
//k == 0时,1号指针和2号指针同时走,ret即为待删除的节点
if (k == 0)
{
while (cur != NULL)
{
pre = ret;
cur = cur->next;
ret = ret->next;
}
/*k = 2时
head 1 2 3 4 5 NULL
pre ret cur
即要求删除ret节点
*/
pre->next = ret->next;
free(ret);
ret = NULL;
return head;
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有