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;
    }
};
posted @ 2021-06-07 18:45  Mrsdwang  阅读(28)  评论(0编辑  收藏  举报