当前位置:网站首页>【Hot100】19. 删除链表的倒数第 N 个结点

【Hot100】19. 删除链表的倒数第 N 个结点

2022-07-01 15:49:00 王六六的IT日常

19. 删除链表的倒数第 N 个结点
中等题

在这里插入图片描述
虚拟头节点+双指针
fast先移动n+1步,超前n个结点,使得slow和fast之间间隔n-1个节点.
间隔n-1个节点即超前n个节点。

/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */
class Solution {
    
    public ListNode removeNthFromEnd(ListNode head, int n) {
    
        //虚拟头节点
        ListNode dummy = new ListNode(0);
        dummy.next = head;
        ListNode slow = dummy,fast = dummy;

        //使slow和fast间隔n-1个节点
        for(int i=0;i<=n;i++){
    
            fast = fast.next;
        }
        while(fast != null){
    
            slow = slow.next;
            fast = fast.next;
        }
        slow.next = slow.next.next;
        return dummy.next;//返回整个链表

    }
}
原网站

版权声明
本文为[王六六的IT日常]所创,转载请带上原文链接,感谢
https://blog.csdn.net/m0_58058653/article/details/125551108