
删除链表的倒数第N个节点
发布日期:2021-05-15 09:23:33
浏览次数:21
分类:原创文章
本文共 986 字,大约阅读时间需要 3 分钟。
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
示例:
给定一个链表: 1->2->3->4->5, 和 n = 2.
当删除了倒数第二个节点后,链表变为 1->2->3->5.
说明:
给定的 n 保证是有效的。
进阶:
你能尝试使用一趟扫描实现吗?
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路:定义两个指针,一个指针先走,再两个一起走,直到之前的那个指针为空,后继指针为要删除的结点的前一个指针
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution { public: ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode*p1,*p2; p1=p2=head; int i; i=0; if (n<=0) { return head; } while (i < n && p2) { p2=p2->next; i++; } if (!p2) { //cout<<"one\n"; head=head->next; //cout<<head->val<<endl; return head; } //cout<<p2->val<<endl; i=0; while (p2) { if (i!=0) { p1=p1->next; } i++; p2=p2->next; } //cout<<p1->val<<endl; p2=p1->next; p1->next=p2->next; delete p2; return head; }};
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月25日 21时19分26秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
参考图像
2021-05-12
设计模式(18)——中介者模式
2021-05-12
推荐几篇近期必看的视觉综述,含GAN、Transformer、人脸超分辨、遥感等
2021-05-12
BUU-MISC-认真你就输了
2021-05-12
BUU-MISC-caesar
2021-05-12
【专题2:电子工程师 之 上位机】 之 【36.事件重载】
2021-05-12
【专题3:电子工程师 之 上位机】 之 【46.QT音频接口】
2021-05-12
一文理解设计模式--命令模式(Command)
2021-05-12
VTK:可视化之RandomProbe
2021-05-12
block多队列分析 - 2. block多队列的初始化
2021-05-12
Java时间
2021-05-12
不编译只打包system或者vendor image命令
2021-05-12
The wxWindows Library Licence (WXwindows)
2021-05-12
【编程】C语言入门:1到 100 的所有整数中出现多少个数字9
2021-05-12
MySQL----基础及常用命令
2021-05-12
flink启动(二)
2021-05-12
关于宝塔面板安装的mysql用Navicat连接出现2003的错误解决
2021-05-12