Nth to Last Node in List

Find the nth to last element of a singly linked list. 

The minimum number of nodes in list is n.

Example

Given a List  3->2->1->5->null and n = 2, return node  whose value is 1.

分析:

要找到nth to last element,我们需要两个指针,第一个指针先走n步,然后两个指针同时走,知道第一个指针为null.

 1 public class Solution {
 2     /**
 3      * @param head: The first node of linked list.
 4      * @param n: An integer.
 5      * @return: Nth to last node of a singly linked list. 
 6      */
 7     ListNode nthToLast(ListNode head, int n) {
 8         if (head == null || n <= 0) return null;
 9         
10         ListNode first = head;
11         ListNode last = head;
12 
13         for (int count = 1; count <= n; count++;) {
14             first = first.next;
15         }
16         
17         while(first != null) {
18             first = first.next;
19             last = last.next;
20         }
21         return last;
22     }
23 }

转载请注明出处:cnblogs.com/beiyeqingteng/

posted @ 2016-07-03 03:51  北叶青藤  阅读(209)  评论(0编辑  收藏  举报