【LeetCode】链表——移除链表元素

链接:https://leetcode-cn.com/explore/learn/card/linked-list/195/classic-problems/752/
【LeetCode】链表——移除链表元素_第1张图片
思路:遍历链表,如果节点的值等于 val,那么就将节点移除。这里新增加一个节点,是为了防止头结点和 val 相等时无法移除的情况

/**
 * 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) {
      
        ListNode* newHead=new ListNode(0);
        ListNode* p=newHead;
        newHead->next=head;    
        while(newHead->next)
        {
     
            if(newHead->next->val==val) newHead->next=newHead->next->next;
            else newHead=newHead->next;
        }
        return p->next;
    }
};

你可能感兴趣的:(C++)