[Lintcode]Nth to Last Node in List

来源:互联网 发布:暴雪铁人五项 知乎 编辑:程序博客网 时间:2024/05/19 13:08

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.


解法:创建两个指针,两个指针保持间距为n并同时向后移动直到second指针为空。first指针为倒数第n个结点


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.      */    ListNode nthToLast(ListNode head, int n) {        ListNode first = head;        ListNode second = head;        for(int i = 0; i < n; i++) {            if(second == null) return null;            second = second.next;        }                while(second != null) {            first = first.next;            second = second.next;        }        return first;    }}


0 0
原创粉丝点击