Leetcode --- 203. 移除链表元素
题目描述
给你一个链表的头节点 head
和一个整数 val
,请你删除链表中所有满足 Node.val == val
的节点,并返回 新的头节点 。
示例 1:
示例
输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5] 输入:head = [7,7,7,7], val = 7 输出:[]
参考实现
方式1、使用递归实现
/** * 递归实现删除链表元素 * * @param head * @param val * @return */ public static ListNode removeElements(ListNode head, int val) { if (head == null) { return null; } else { head.next = removeElements(head.next, val); if (head.val == val) { return head.next; } else { return head; } } }
方式2、使用循环实现
/** * 循环删除链表元素 * * @param head * @param val * @return */ public static ListNode removeElementsxh(ListNode head, int val) { //声明虚拟节点 ListNode dummy = new ListNode(val - 1); dummy.next = head; //复制出来 ListNode prev = dummy; while (prev.next != null) { //满足删除条件进行删除 if (prev.next.val == val) { prev.next = prev.next.next; } else { //不满足进行遍历 prev = prev.next; } } return dummy.next; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
2023-05-07 类的成员:方法(method)(三)
2022-05-07 CentOS7 修改环境变量后导致命令失效
2020-05-07 Jedis 连接 Redis