LeetCode 100道热题 | 链表(三)
发布时间
阅读量:
阅读量
目录
1 19. 移除链表末尾倒数第 N 个元素
2 24. 链表中相邻节点的互换操作
3 25. 按 K 个节点为一组进行链表逆序处理
4 138. 对随机链表进行复制操作
新手刷题第三周,采用 C++ 编程语言
1 19. 删除链表的倒数第 N 个节点
究竟是节点还是结点……
解题思路如下:
- 初始化两个指针,分别命名为 left 和 right
- 首先将 right 指针向右移动 n 个位置
- 接着使 left 和 right 指针同步向右移动,直到 right 指针指向空值
- 此时,left 指针将正好位于待删除节点的前一个位置
思路说明图:

该虚拟节点(dummy node)的设计颇具匠心,能够高效应对被移除节点为头节点这一特殊情况。
class Solution {
public:
ListNode* removeNthFromEnd(ListNode* head, int n) {
ListNode
全部评论 (0)
还没有任何评论哟~
