LeetCode | 203. 移除链表元素

LeetCode | 203. 移除链表元素

OJ链接

  • 这里有两个思路我接下来看

  • 当cur不等于6就一直找,找到了6就删除,但是能不能直接删除?不能,直接free了就找不到下一个了

  • 这个时候我们就要定义next指针,和prev指针,next指针保存cur的下一个地址,prev保存cur的前一个地址

代码如下:

c 复制代码
struct ListNode* removeElements(struct ListNode* head, int val) {
    struct ListNode* prev = NULL;
    struct ListNode* cur=head;
    while(cur != NULL)
    {
        if(cur->val == val)
        {
            struct ListNode* next = cur->next;
            free(cur);
            if(prev)
                prev->next = next;
            else
                head = next;
            cur = next;
        }
        else
        {
            prev = cur;
            cur = cur->next;
        }
    }
    return head;
}
相关推荐
张胤尘9 分钟前
算法每日一练 (9)
数据结构·算法
WenGyyyL11 分钟前
使用OpenCV和MediaPipe库——驼背检测(姿态监控)
人工智能·python·opencv·算法·计算机视觉·numpy
邴越29 分钟前
回文子序列问题解题模板
算法·leetcode·职场和发展
Flower#1 小时前
【图论】判断图中有环的两种方法及实现
算法·深度优先·图论
胡桃不是夹子1 小时前
学会了蛇形矩阵
c++·算法·矩阵
m0_675988231 小时前
Leetcode2597:美丽子集的数目
算法·leetcode·回溯·python3
丶重明2 小时前
【Go每日一练】返回切片中的最大值和最小值
算法·golang
一只_程序媛2 小时前
【leetcode hot 100 234】回文链表
算法·leetcode·链表
qq_433554542 小时前
C++ 二叉搜索树代码
开发语言·c++·算法
橘颂TA2 小时前
每日一练之移除链表元素
数据结构·链表