LeetCode(力扣)19 删除链表倒数第N个节点

        思路:

        1.建立哑节点(虚拟节点,哨兵节点)

            可以让头节点跟普通节点一样进行处理

        2.让第二个指针走比第一个指针先走n步

        3.n2指针不指向null时让n1和n2同时前进一位

        4.让n1指针所指的节点的next指向下下一个节点

            删除链表中的节点就是取消当前节点和上一个节点的引用

        5.返回哑节点的下一个节点

            从head节点开始

        // 伪代码如下
      var removeNthFormEnd = function (head, n) {
        let dummy = new ListNode();
        dummy.next = head;
        let n1 = dummy;
        let n2 = dummy;
        for (let i = 0; i <= n; i++) {
          n2 = n2.next;
        }
        while (n2 !== null) {
          n1 = n1.next;
          n2 = n2.next;
        }
        n1.next = n1.next.next;
        return dummy.next;
      };

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值