zoukankan      html  css  js  c++  java
  • lintcode166 链表倒数第n个节点

    链表倒数第n个节点 

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

    思路:设置两个指针first,second指向head,first指针先向前走n,然后两个指针一起走,first指针走到末尾,second走到倒数第n个指针!

    代码

     1 /**
     2  * Definition of ListNode
     3  * class ListNode {
     4  * public:
     5  *     int val;
     6  *     ListNode *next;
     7  *     ListNode(int val) {
     8  *         this->val = val;
     9  *         this->next = NULL;
    10  *     }
    11  * }
    12  */
    13 
    14 
    15 class Solution {
    16 public:
    17     /*
    18      * @param head: The first node of linked list.
    19      * @param n: An integer
    20      * @return: Nth to last node of a singly linked list.
    21      */
    22     ListNode * nthToLast(ListNode * head, int n) {
    23         // write your code here
    24         if (NULL == head || n < 1) return NULL;
    25         ListNode *first = head;
    26         ListNode *second = head;
    27         while (n) {
    28             first = first->next;
    29             n--;
    30         }
    31         while (first) {
    32             first = first->next;
    33             second = second->next;
    34         }
    35         return second;
    36     }
    37 };
  • 相关阅读:
    织梦开发——相关阅读likeart应用
    织梦标签教程
    织梦专题调用代码
    HIT 2543 Stone IV
    POJ 3680 Intervals
    HIT 2739 The Chinese Postman Problem
    POJ 1273 Drainage Ditches
    POJ 2455 Secret Milking Machine
    SPOJ 371 Boxes
    HIT 2715 Matrix3
  • 原文地址:https://www.cnblogs.com/gousheng/p/7632854.html
Copyright © 2011-2022 走看看