当前位置: 首页 > news >正文

203. 移除链表元素

203. 移除链表元素
删除链表结点
方式1:直接在原链表删除
方式2:添加一个虚拟头结点,再删除

删除链表结点操作是通过前一个结点完成的,由于头结点没有前驱结点,所以头结点的删除需要单独的处理逻辑
通过添加一个虚拟头结点,链表中所有结点的删除操作相同
image

方式1

class Solution {public ListNode removeElements(ListNode head, int val) {// 单独处理头结点的删除while (head != null && head.val == val) {head = head.next;}// 删除其他结点ListNode cur = head;while (cur != null && cur.next != null) {if (cur.next.val == val) {cur.next = cur.next.next;} else {cur = cur.next;}}return head;}
}
class Solution {public ListNode removeElements(ListNode head, int val) {// 单独处理头结点while (head != null && head.val == val) {head = head.next;}// 头结点已经为 nullif (head == null) return head;// 处理其他结点ListNode prev = head;ListNode cur = head.next;while (cur != null) {if (cur.val == val) {prev.next = cur.next;} else {prev = cur;}cur = cur.next;}return head;}
}

方式2

class Solution {public ListNode removeElements(ListNode head, int val) {// 设置一个虚拟的头结点ListNode dummy = new ListNode();dummy.next = head;ListNode cur = dummy;while (cur.next != null) {if (cur.next.val == val) {cur.next = cur.next.next;} else {cur = cur.next;        }}return dummy.next;}
}

递归

class Solution {public ListNode removeElements(ListNode head, int val) {// 假设 removeElements() 返回去除 val 元素的子链表// 在当前递归层接住后面删除 val 元素的子链表if (head == null) return null;head.next = removeElements(head.next, val);if (head.val == val) {return head.next;} return head;}
}
http://www.hskmm.com/?act=detail&tid=32893

相关文章:

  • 灵动岛iPhone状态栏获得高度不对 iOS iPhone14pro iPhone14pro max状态栏获得高度不对
  • string略解
  • 《程序员修炼之道》 阅读笔记二
  • 是时候告别向日葵、Todesk、TeamViewer了,快速搭建自托管服务器RustDesk
  • 史馆
  • firecrawl 私有部署(test)
  • $\text{Catalan}$ 数 卡特兰数
  • java作业3
  • 大模型 | VLM 初识及在自动驾驶场景中的应用
  • CF1977 Codeforces Round 948 (Div. 2) 游记(VP)
  • 别被波形“骗” 了!差分探头与无源探头测量不一致的 5 大关键因素
  • 2025 年展览会服务商最新推荐榜权威发布:22 年经验甄选十强品牌,助力企业参展高效决策
  • 2025年信息流代运营服务商权威推荐榜单:专业投放策略与效果优化服务口碑之选
  • 2025 年焊把线厂家最新推荐榜:国标欧标铜芯软焊把线优质企业排行,优质品牌助力选购欧标/铜芯/软/耐高温焊把线厂家推荐
  • 基于MATLAB的倒立摆控制实现方案
  • 2025 年展会服务商最新推荐排行榜:聚焦一站式服务与高效执行能力的优质企业榜单瓷砖/暖通/照明/门窗/玻璃/厨卫/卫浴/灯饰展会厂家推荐
  • 数据迁移mysql--sr
  • iOS 26 App 开发阶段性能优化全流程,从监控到调优的多工具协作实践
  • MATLAB实现语音去混响与去噪
  • 风险评估的流程和各阶段的工作内容
  • 无穷小和无穷大
  • Adobe Media Encoder 2025 免费版一键安装包完整安装教程(含下载安装包)
  • 2025 年最新推荐船用气囊源头厂家权威排行榜:聚焦专业生产与可靠供应,助力精准选购优质产品橡胶/船舶/防撞/山东/港口用船用气囊厂家推荐
  • 【隐语SecretFlow用户案例】亚信科技构建统一隐私计算框架探索实践
  • Zynq选型
  • 2025 西安楼盘最新推荐排行榜:聚焦优质教育配套的品质楼盘精选高端/刚需/品牌/现房/优质楼盘推荐
  • 稀疏离散分数阶傅里叶变换的MATLAB实现
  • 2025 年导轨丝杆源头厂家最新推荐榜,技术实力与市场口碑深度解析的优质企业榜单东莞/直线/滚珠/孚雷导轨丝杆厂家推荐
  • Linux-简单命令 - 实践
  • far的数据类型