移除链表元素-力扣

一道基础的链表相关题目,在删除时对头节点进行单独处理。

cpp 复制代码
/**
 * 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) {
        while(head != NULL && head->val == val){
            ListNode * t = head;
            head = head->next;
            delete t;
        }
        ListNode * cur = head;
        while(cur != NULL && cur->next != NULL){
            if(cur->next->val == val){
                ListNode * t = cur->next;
                cur->next = cur->next->next;
                delete t;
            }else{
                cur = cur->next;
            }
        }

        return head;
    }
};

另外一种写法是设置一个虚拟节点指向头节点,这样就无需对头节点进行单独处理,最后将head指向虚拟节点的下一个节点。

cpp 复制代码
class Solution {
public:
    ListNode* removeElements(ListNode* head, int val) {
        ListNode* dummyHead = new ListNode(0); // 设置一个虚拟头结点
        dummyHead->next = head; // 将虚拟头结点指向head,这样方便后面做删除操作
        ListNode* cur = dummyHead;
        while (cur->next != NULL) {
            if(cur->next->val == val) {
                ListNode* tmp = cur->next;
                cur->next = cur->next->next;
                delete tmp;
            } else {
                cur = cur->next;
            }
        }
        head = dummyHead->next;
        delete dummyHead;
        return head;
    }
};
相关推荐
张小姐的猫21 分钟前
【AI大模型接入SDK】 —— 前端页面 & 项目总结与拓展
前端·数据结构·数据库·c++·人工智能·chatgpt
blxr_23 分钟前
力扣hot100寻找重复数https://leetcode.cn/problems/find-the-duplicate-number/
算法·leetcode·职场和发展
_不会dp不改名_1 小时前
leetcode_1614嵌套括号的最大深度
算法·leetcode·职场和发展
sunburn-2 小时前
Java 排序算法详细教学:从冒泡排序到快速排序
java·开发语言·数据结构·ide·算法
bksczm2 小时前
零基础面试题1
jvm·数据结构·算法
sogw-三叶草️2 小时前
LeetCode206. 反转链表
数据结构·链表
careathers3 小时前
【数据结构】二叉树
数据结构·算法
轩轶子3 小时前
Python CLI Todo:一次数据结构错误引发的 Bug
数据结构·python·bug
alphaTao4 小时前
LeetCode 每日一题 2026/9/21-2026/9/27
python·算法·leetcode
CQU_JIAKE4 小时前
9.28【A】
数据结构