码迷,mamicode.com
首页 > 其他好文 > 详细

LintCode: Remove Linked List Elements

时间:2015-11-26 21:05:21      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

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 };

 

LintCode: Remove Linked List Elements

标签:

原文地址:http://www.cnblogs.com/CheeseZH/p/4998696.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!