Lintcode链表倒数第n个节点

来源:互联网 发布:复杂网络同步现象 编辑:程序博客网 时间:2024/06/13 07:44

链表倒数第n个节点 

找到单链表倒数第n个节点,保证链表中节点的最少数量为n。

样例

给出链表 3->2->1->5->null和n = 2,返回倒数第二个节点的值1.

public class Solution {
    /*
     * @param head: The first node of linked list.
     * @param n: An integer
     * @return: Nth to last node of a singly linked list. 
     */
    public ListNode nthToLast(ListNode head, int n) {
        // write your code here
        int count=0;
        int b=0;
        ListNode a=head;
        while(head!=null){
            count++;                          //找出一共有几个节点
            head=head.next;
        }
        while(a!=null){
            b++;
            if(b==count-n+1){            //n为倒数第几个节点,节点总数-倒数第几个节点+1=正数第几个节点。
                return a;
            }
            a=a.next;
        }
        return a;
    }
}