• lintcode-166-链表倒数第n个节点


    166-链表倒数第n个节点

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

    样例

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

    标签

    链表 Cracking The Coding Interview

    思路

    使用 快慢个指针,快指针比慢指针先走 n 步,当快指针走到链表尾部时,慢指针指向倒数第 n 个节点

    code

    /**
     * Definition of ListNode
     * class ListNode {
     * public:
     *     int val;
     *     ListNode *next;
     *     ListNode(int val) {
     *         this->val = val;
     *         this->next = NULL;
     *     }
     * }
     */
    class Solution {
    public:
        /**
         * @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
            ListNode *p1 = head, *p2 = head;
            for (int i = 0; i < n; i++) {
                p1 = p1->next;
            }
            while (p1 != NULL) {
                p1 = p1->next;
                p2 = p2->next;
            }
            return p2;
        }
    };
    
  • 相关阅读:
    Java-循环语句和条件语句
    Java-变量函数 上
    python
    python
    python
    Xpath
    python + selenium
    python + selenium
    python + selenium
    Web
  • 原文地址:https://www.cnblogs.com/libaoquan/p/7275674.html
Copyright © 2020-2023  润新知