首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >移除链表元素(C++)

移除链表元素(C++)

作者头像
GeekLiHua
发布2025-01-21 11:00:14
发布2025-01-21 11:00:14
1550
举报
文章被收录于专栏:JavaJava
移除链表元素

难度简单1036收藏分享切换为英文接收动态反馈

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点

示例 1:

代码语言:javascript
复制
输入: head = [1,2,6,3,4,5,6], val = 6
输出: [1,2,3,4,5]

示例 2:

代码语言:javascript
复制
输入: head = [], val = 1
输出: []

示例 3:

代码语言:javascript
复制
输入: head = [7,7,7,7], val = 7
输出: []

提示:

  • 列表中的节点数目在范围 [0, 104]
  • 1 <= Node.val <= 50
  • 0 <= val <= 50

我的代码:

代码语言:javascript
复制
/**
 * 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) {
        // 递归的技巧
        if (head == NULL) return head;
       head->next = removeElements(head->next, val);
       // 如果是要删除的value 那么就返回需要删除的节点的下一个节点 通过这种方式来删除 反之就返回原来的
        return head->val == val ? head->next :head;
    }
};

对应我的掘金文章:https://juejin.cn/post/7147271288426332168

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 移除链表元素
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档