Advertisement

LeetCode 100道热题 | 链表(三)

阅读量:

目录

1 19. 移除链表末尾倒数第 N 个元素

2 24. 链表中相邻节点的互换操作

3 25. 按 K 个节点为一组进行链表逆序处理

4 138. 对随机链表进行复制操作


新手刷题第三周,采用 C++ 编程语言

1 19. 删除链表的倒数第 N 个节点

究竟是节点还是结点……

解题思路如下:

  1. 初始化两个指针,分别命名为 left 和 right
  2. 首先将 right 指针向右移动 n 个位置
  3. 接着使 left 和 right 指针同步向右移动,直到 right 指针指向空值
  4. 此时,left 指针将正好位于待删除节点的前一个位置

思路说明图:

该虚拟节点(dummy node)的设计颇具匠心,能够高效应对被移除节点为头节点这一特殊情况。

复制代码
 class Solution {

    
 public:
    
     ListNode* removeNthFromEnd(ListNode* head, int n) {
    
     ListNode

全部评论 (0)

还没有任何评论哟~