題目:
203. 移除鏈表元素
給你一個鏈表的頭節點?head
?和一個整數?val
?,請你刪除鏈表中所有滿足?Node.val == val
?的節點,并返回?新的頭節點?。
1,設置一個頭節點,統一操作。
2,這里是用p查找,但是對比是 用p的下一個節點的value值進行對比。當找到時設置一個臨時節點q記錄。
思考:是否可以用p指針查找value,設置一個pre????
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* removeElements(ListNode* head, int val) {ListNode* Lnode = new ListNode(0);//開一個頭節點Lnode->next = head;ListNode *p;p = Lnode;while(p->next!=NULL){if(p->next->val==val){ListNode*q;q=p->next;p->next = q->next;delete q;}else{p=p->next;}}head = Lnode->next;delete Lnode;return head ;}
};