zoukankan      html  css  js  c++  java
  • [LintCode] 删除链表中倒数第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 class Solution {
    14 public:
    15     /**
    16      * @param head: The first node of linked list.
    17      * @param n: An integer.
    18      * @return: The head of linked list.
    19      */
    20     ListNode *removeNthFromEnd(ListNode *head, int n) {
    21         // write your code here
    22         ListNode* pre = head;
    23         ListNode* cur = head;
    24         for (int i = 0; i < n; i++)
    25             cur = cur -> next;
    26         if (!cur) {
    27             delete pre;
    28             return pre -> next;
    29         }
    30         while (cur -> next) {
    31             pre = pre -> next;
    32             cur = cur -> next;
    33         }
    34         delete pre -> next;
    35         pre -> next = pre -> next -> next;
    36         return head;
    37     }
    38 };
  • 相关阅读:
    无限维
    黎曼流形
    why we need virtual key word
    TOJ 4119 Split Equally
    TOJ 4003 Next Permutation
    TOJ 4002 Palindrome Generator
    TOJ 2749 Absent Substrings
    TOJ 2641 Gene
    TOJ 2861 Octal Fractions
    TOJ 4394 Rebuild Road
  • 原文地址:https://www.cnblogs.com/jcliBlogger/p/4628530.html
Copyright © 2011-2022 走看看