力扣-链表-203 移除链表元素

思路1

处理头节点,然后遍历下一个节点,只有确保下一个节点不是要移除的节点时再跳到下一个节点

代码1

cpp 复制代码
class Solution {
public:
    ListNode* removeElements(ListNode* head, int val) {
        while(head != nullptr && head->val == val){
            head = head->next;
        }
        ListNode* front = head;

        while(front != nullptr &&front->next != nullptr){
            if(front->next!=nullptr && front->next->val == val){
                front->next = front->next->next;
            }else
                front = front->next;
        }

        return head;
    }
};

思路2

设置空白头节点,这样不用单独处理头节点

代码2

cpp 复制代码
class Solution {
public:
    ListNode* removeElements(ListNode* head, int val) {
        ListNode* bankNode = new ListNode();
        bankNode->next = head;
        ListNode* cur = bankNode;

        while(cur->next != nullptr){
            if(cur->next->val == val){
                cur->next = cur->next->next;
            }else
                cur = cur->next;
        }

        return bankNode->next;
    }
};
相关推荐
handler012 分钟前
基础算法:分治
c语言·开发语言·c++·笔记·学习·算法·深度优先
Yzzz-F6 分钟前
Problem - D2 - Codeforces [插入计数]
算法
图图的点云库6 分钟前
点云深度学习算法概述
人工智能·深度学习·算法
2501_9249526913 分钟前
设计模式在C++中的实现
开发语言·c++·算法
菜鸟小九15 分钟前
hot100(71-80)
java·数据结构·算法
不想看见40417 分钟前
Implement Queue using Stacks栈和队列--力扣101算法题解笔记
笔记·算法·leetcode
DeepModel20 分钟前
【统计检验】T检验
算法
2501_9454251532 分钟前
C++编译期字符串处理
开发语言·c++·算法
m0_7336122134 分钟前
模板编译期哈希计算
开发语言·c++·算法
ab15151738 分钟前
3.18二刷基础119、124,完成进阶52
算法