首页 >Java >java教程 >Java怎么删除链表的倒数第N个节点

Java怎么删除链表的倒数第N个节点

WBOY
WBOY转载
2023-04-28 15:52:141214浏览
解题思路
  1. 整体思路是让前面的指针先移动n步,之后前后指针共同移动直到前面的指针到尾部为止。

  2. 首先设立预先指针 pre,预先指针是一个小技巧,在第2题中进行了讲解

  3. 设预先指针 pre 的下一个节点指向 head,设前指针为 first,后指针为 second,二者都等于 pre

  4. first 先向前移动n步

  5. 之后 first 和 second 共同向前移动,此时二者的距离为 n,当 first 到尾部时,second 的位置恰好为倒数第 n 个节点的上一个结点。

Java代码
class Solution {
    
       public ListNode removeNthFromEnd(ListNode head, int n) {

        ListNode pre = new ListNode(0);
        pre.next = head;

        ListNode first = pre;
        ListNode second = pre;

        while (n>0){
            first= first.next;
            n--;
        }

        while (first.next != null){
            first=first.next;
            second=second.next;
        }
        second.next = second.next.next;

        return  pre.next;
    }
}

以上是Java怎么删除链表的倒数第N个节点的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:yisu.com。如有侵权,请联系admin@php.cn删除