zoukankan      html  css  js  c++  java
  • LintCode: Remove Linked List Elements

    C++

     1 /**
     2  * Definition for singly-linked list.
     3  * struct ListNode {
     4  *     int val;
     5  *     ListNode *next;
     6  *     ListNode(int x) : val(x), next(NULL) {}
     7  * };
     8  */
     9 class Solution {
    10 public:
    11     /**
    12      * @param head a ListNode
    13      * @param val an integer
    14      * @return a ListNode
    15      */
    16     ListNode *removeElements(ListNode *head, int val) {
    17         // Write your code here
    18         // Find the first non-Val node
    19         while ( head != NULL && head->val == val ) {
    20             head = head->next;
    21         }
    22         // If the head is NULL, return
    23         if ( head == NULL ) {
    24             return head;
    25         }
    26         // Remove the left val nodes
    27         ListNode *pre = head;
    28         ListNode *cur = pre->next;
    29         while ( cur != NULL ) {
    30             if ( cur->val != val ) {
    31                 pre->next = cur;
    32                 pre = pre->next;
    33             }
    34             cur = cur->next;
    35         }
    36         // In case of the tail has val node
    37         pre->next = cur;
    38         // return
    39         return head;
    40     }
    41 };
  • 相关阅读:
    洛谷P4979 矿洞:坍塌
    [SHOI2015]脑洞治疗仪
    洛谷P2135 方块消除
    洛谷P1436 棋盘分割
    洛谷P2796 Facer的程序
    浅谈位运算
    [SDOI2006]最短距离
    12耐心_预测未来
    11耐心_有效市场假说
    02C++条件变量
  • 原文地址:https://www.cnblogs.com/CheeseZH/p/4998696.html
Copyright © 2011-2022 走看看