19. Remove Nth Node From End of List (LL)

 1 class Solution {
 2    public ListNode removeNthFromEnd(ListNode head, int n) {
 3        if(head == null) return head;
 4        if(head.next == null) return null;
 5        ListNode node1 = head;
 6        ListNode node2 = head;
 7        ListNode p = node1;
 8        for(int i = 0; i < n - 1; i++) {
 9            node2 = node2.next;
10        }
11        if(node2.next == null) {   //要加上这一段 要是node2刚好到tail 下面代码无法更新node1, 因为node1在head
12            return head.next;
13        }
14        while(node2.next != null) {
15            p = node1;
16            node1 = node1.next;
17            node2 = node2.next;
18        }
19        p.next = node1.next;
20        return head;
21    }
22 }

猜你喜欢

转载自www.cnblogs.com/goPanama/p/9496015.html