203. 移除链表元素

Posted Mrsdwang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了203. 移除链表元素相关的知识,希望对你有一定的参考价值。

思路:
基础的链表题,建立一个dummy节点,一个cur指向当前节点用来判断是否等于val的指针,和一个pre指针用来更新删除等于val节点后的链表。
一个while循环,条件是cur不为nullptr即可。
代码:

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

以上是关于203. 移除链表元素的主要内容,如果未能解决你的问题,请参考以下文章

代码随想录算法训练营第三天 | 203.移除链表元素707.设计链表 206.反转链表

代码随想录算法训练营第三天 | 203.移除链表元素707.设计链表 206.反转链表

203. 移除链表元素

203. 移除链表元素

203. 移除链表元素

203. 移除链表元素