LeetCode: 203. Remove Linked List Elements
LeetCode: 203. Remove Linked List Elements
题目描述
Remove all elements from a linked list of integers that have value val.
Example:
Input: 1->2->6->3->4->5->6, val = 6
Output: 1->2->3->4->5
解题思路
判断当前节点的下一个节点是否是 val
, 如果是的话,则删除掉下一个节点。
AC 代码
/** * 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) {
// 首节点是否是 val
while(head && head->val == val) head = head->next;
if(head == nullptr) return nullptr;
// 下一个节点是否是 val
ListNode* iterNode = head;
while(iterNode->next)
{
if(iterNode->next->val == val) iterNode->next = iterNode->next->next;
else iterNode = iterNode->next;
}
return head;
}
};