1. 程式人生 > >[leetcode] 19. Remove Nth Node From End of List (Medium)

[leetcode] 19. Remove Nth Node From End of List (Medium)

原題連結

刪除單向連結串列的倒數第n個結點。

思路:
用兩個索引一前一後,同時遍歷,當後一個索引值為null時,此時前一個索引表示的節點即為要刪除的節點。
Runtime: 13 ms, faster than 24.49% of Java

class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        ListNode slow=head;
        ListNode fast=head;
        for(int i=0;i<n;i++)
            fast=fast.next;
        if (fast==null){
            return head.next;
        }
        while(fast.next!=null)
        {
            slow=slow.next;
            fast=fast.next;
        }
        slow.next=slow.next.next;
        return head;
    }
}