美文网首页
Nth to Last Node in List

Nth to Last Node in List

作者: ab409 | 来源:发表于2015-11-25 21:52 被阅读47次

    Nth to Last Node in List


    今天是一道简单的题目,来自LintCode,难度为Easy,Acceptance为40%

    题目如下

    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.

    解题思路及代码见阅读原文

    回复0000查看更多题目

    解题思路

    首先,这道题目很简单,相信很多同学都见过了,一看到这题应该就有了思路:用一个快指针先走n步,然后再和慢指针一块走,当快指针走到null时,慢指针就是我们要找的节点。

    然后,该题其实是进行了简化了的,即他规定了链表的长度比n大,这样我们就不用求链表的长度了。

    最后,就是要注意细节,保证无bug。

    (今天的头图也是此意,雍正皇帝,干掉bug(八阿哥))

    代码如下

    Java版

    /**
     * Definition for ListNode.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int val) {
     *         this.val = val;
     *         this.next = null;
     *     }
     * }
     */ 
    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) {
            // write your code here
            if(null == head || n <= 0)
                return null;
           ListNode fast = head, slow = head;
            for(int i = 0; i < n; i++) {
                fast = fast.next;
            }
            while(fast != null) {
                fast = fast.next;
                slow = slow.next;
            }
            return slow;
        }   
    }
    

    相关文章

      网友评论

          本文标题:Nth to Last Node in List

          本文链接:https://www.haomeiwen.com/subject/bgfdhttx.html