leetcode203. Remove Linked List Elements
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode203. Remove Linked List Elements相关的知识,希望对你有一定的参考价值。
很经典的一道题,但波波老师讲出了新的东西。设立虚拟结点,因为每次循环cur->next只有头结点无法考虑,但是你要是单独考虑头结点,万一头结点删除你还需要再考虑下一头结点,就形成了很麻烦的while结构。有了虚拟头结点,问题全都解决了。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* removeElements(ListNode* head, int val) { if (head == NULL) return NULL; ListNode* dummyhead; dummyhead = new ListNode(0); dummyhead->next = head; ListNode* cur; cur = dummyhead; while (cur->next!=NULL) { if (cur->next->val == val) { ListNode* delNode; delNode = cur->next; cur->next = delNode->next; delete delNode; } else cur = cur->next; } return dummyhead->next; } };
以上是关于leetcode203. Remove Linked List Elements的主要内容,如果未能解决你的问题,请参考以下文章
Java [Leetcode 203]Remove Linked List Elements
leetcode?python 203. Remove Linked List Elements
203. Remove Linked List Elements - LeetCode
LeetCode OJ 203Remove Linked List Elements