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 };
  • 相关阅读:
    SQL FORMAT() 函数
    SQL ROUND() 函数
    SQL NOW() 函数
    SQL LEN() 函数
    SQL LCASE() 函数
    SQL MID() 函数
    SQL HAVING 子句
    UCASE() 函数
    SQL GROUP BY 语句
    SQL MAX() 函数
  • 原文地址:https://www.cnblogs.com/gousheng/p/7632854.html
Copyright © 2011-2022 走看看