Loading

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

https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/

使用哑结点可以避免许多特殊情况
这道倒数链表是要删除,如果是平时使用正常的快慢指针的话,需要注意快慢指针应该比平时使用差一步,因为要删除慢指针所在的地方,可以让快指针多走一步,也可以使用哑结点,就是比平时慢了一步

class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
	初始化一个空节点,初始赋值为0,并且dummy的下一个next指针指向head,指针指向为dummy
        ListNode dummy = new ListNode(0,head);
        ListNode first = head;
        ListNode slow = dummy;
        for(int i = 0; i < n; i++) 
            first = first.next;
        while(first != null){
            first = first.next;
            slow = slow.next;
        }
        slow.next = slow.next.next;
        ListNode ans = dummy.next;
        return ans;
    }
}
posted @ 2022-01-15 10:57  Zhbeii  阅读(37)  评论(0)    收藏  举报