力扣-链表-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;
    }
};
相关推荐
黑听人3 小时前
【力扣 困难 C】329. 矩阵中的最长递增路径
c语言·leetcode
YuTaoShao5 小时前
【LeetCode 热题 100】141. 环形链表——快慢指针
java·算法·leetcode·链表
小小小新人121236 小时前
C语言 ATM (4)
c语言·开发语言·算法
你的冰西瓜6 小时前
C++排序算法全解析(加强版)
c++·算法·排序算法
এ᭄画画的北北6 小时前
力扣-31.下一个排列
算法·leetcode
绝无仅有7 小时前
企微审批对接错误与解决方案
后端·算法·架构
用户5040827858398 小时前
1. RAG 权威指南:从本地实现到生产级优化的全面实践
算法
Python×CATIA工业智造9 小时前
详细页智能解析算法:洞悉海量页面数据的核心技术
爬虫·算法·pycharm
Swift社区9 小时前
Swift 解 LeetCode 321:拼接两个数组中的最大数,贪心 + 合并全解析
开发语言·leetcode·swift