
题目描述:
删除链表中等于给定值 val 的所有节点。
示例:
1 2 3
|
> 输入: 1->2->6->3->4->5->6, val = 6 > 输出: 1->2->3->4->5 >
|
解题思路:
时间复杂度:$O(n)$,空间复杂度:$O(1)$.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
class { public: ListNode* removeElements(ListNode* head, int val) { if(!head ) return NULL; ListNode *h = new ListNode(INT32_MIN); h -> next = head; ListNode *p = h; ListNode *q = head; while( p -> next != NULL) { if(q -> val == val) {
p -> next = q -> next; delete q; q = p -> next; } else { p = p -> next; q = q -> next; } } return h -> next; } };
|
近期评论