19. Remove Nth Node From End of List

Given a linked list, remove the nth node from the end of list and return its head.

For example,

   Given linked list: 1->2->3->4->5, and n = 2.

   After removing the second node from the end, the linked list becomes 1->2->3->5.

Note:
Given n will always be valid.
Try to do this in one pass.

题目含义:删除列表中从末尾数第n个节点

 1     public ListNode removeNthFromEnd(ListNode head, int n) {
 2         ListNode start = new ListNode(0);
 3         ListNode slow = start, fast = start;
 4         start.next = head;
 5 
 6         for (int i = 0; i <= n ; i++) {
 7             fast = fast.next;
 8         }
 9         while (fast != null) {
10             slow = slow.next;
11             fast = fast.next;
12         }
13         slow.next = slow.next.next;
14         return start.next;
15     }

 

posted @ 2017-10-24 16:26  daniel456  阅读(90)  评论(0编辑  收藏  举报