Hot10019. 删除链表的倒数第 N 个结点

Posted 王六六的IT日常

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hot10019. 删除链表的倒数第 N 个结点相关的知识,希望对你有一定的参考价值。

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;//返回整个链表

    

以上是关于Hot10019. 删除链表的倒数第 N 个结点的主要内容,如果未能解决你的问题,请参考以下文章

给定一个链表,删除链表的倒数第 n 个节点(已知该结点存在),并且返回链表的头结点。

删除链表的倒数第n个结点

删除链表的倒数第 N 个结点

LeetCode-019-删除链表的倒数第 N 个结点

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

《LeetCode之每日一题》:109.删除链表的倒数第 N 个结点