刪除鏈表中的指定元素節點
阿新 • • 發佈:2017-06-14
需要 bre pan 指定元素 ret ons normal amp one
Remove all elements from a linked list of integers that have valueval
.
Given 1->2->3->3->4->5->3
, val = 3, you should return the list as1->2->4->5
要註意開始的節點是否是要刪除節點,還有中間有連續的待刪除節點,和最後的節點需要刪除情況
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * };*/ class Solution { public: /** * @param head a ListNode * @param val an integer * @return a ListNode */ ListNode *removeElements(ListNode *head, int val) { // Write your code here if(head == NULL )return NULL; while(head != NULL && head->val == val) { head= head->next; } if(head == NULL )return NULL; ListNode *p = head; while(p->next != NULL) { if(p->next->val != val) p = p->next; else { ListNode *tmp = p->next; while(tmp != NULL && tmp->val == val) { tmp = tmp->next; } p->next = tmp; p = p->next; } if(p == NULL)break; } return head; } };
刪除鏈表中的指定元素節點