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

LeetCode 分类刷题:3217. 从链表中移除在数组中存在的节点

题目

给你一个整数数组 nums 和一个链表的头节点 head。从链表中移除所有存在于 nums 中的节点后,返回修改后的链表的头节点。

解析

对于本题,由于直接判断节点值是否在 nums 中,需要遍历 nums,时间复杂度为 O(n)。把 nums 中的元素保存一个哈希集合中,然后判断节点值是否在哈希集合中,这样可以做到 O(1)。

具体做法:

  1. 把 nums 中的元素保存到一个哈希集合中。
  2. 由于头节点可能会被删除,在头节点前面插入一个哨兵节点 dummy,以简化代码逻辑。
  3. 初始化 cur=dummy。
  4. 遍历链表,如果 cur 的下一个节点的值在哈希集合中,则需要删除,更新 cur.next 为 cur.next.next;否则不删除,更新 cur 为 cur.next。
  5. 循环结束后,返回 dummy.next。

作者:灵茶山艾府
链接:https://leetcode.cn/problems/delete-nodes-from-linked-list-present-in-array/solutions/2843071/shao-bing-jie-dian-yi-ci-bian-li-pythonj-imre/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

答案

var modifiedList = function(nums, head) {const set = new Set(nums);const dummy = new ListNode(0, head);let cur = dummy;while (cur.next) {const nxt = cur.next;if (set.has(nxt.val)) {cur.next = nxt.next; // 从链表中删除 nxt 节点} else {cur = nxt; // 不删除 nxt,继续向后遍历链表}}return dummy.next;
};// 作者:灵茶山艾府
// 链接:https://leetcode.cn/problems/delete-nodes-from-linked-list-present-in-array/solutions/2843071/shao-bing-jie-dian-yi-ci-bian-li-pythonj-imre/
// 来源:力扣(LeetCode)
// 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

复杂度分析

时间复杂度:O(n+m),其中 n 是 nums 的长度,m 是链表的长度。

空间复杂度:O(n)。

具体分析

  1. 创建 Setnew Set(nums) - 这是 O(n)

  2. 遍历链表while (cur.next) - 这是 O(m)

  3. Set 查询set.has(nxt.val) - 每次都是 O(1)

http://www.dtcms.com/a/611215.html

相关文章:

  • 永康做网站公司自己做平台需要多少钱
  • 做百度手机网站快速排营销型网站建设有哪些平台
  • 算法1112
  • Java语言是解释型还是编译型 | 深入解析Java的执行方式
  • 企业网站优化服务主要围绕什么狮山网站制作
  • 二手交易网站开发的宁波建网站模板
  • K8S中nodePort、port和 targetPort的区别
  • Java/Android中BigDecimal的相关操作
  • 珠海网站建设服务哪个网站做视频有钱
  • 网站开发新闻管理系统的背景设计之家素材
  • PS2模拟器安卓版合集 PSX2、ARMSX2、MYPS2、NetherSX2、 PCSX2汉化中文版
  • 建设工程项目管理网站中心网站建设方法
  • 注意点:挂载与插硬盘,容器挂载实现持久化存储
  • 解决Ubuntu TTY终端中文乱码问题
  • 北京美容网站建设中国进入一级战备有多可怕?
  • 郑州市建设投资集团公司网站深圳罗湖住房和建设局网站
  • 网站建设好与管理在哪就业设计办公室设计公司
  • 泛型擦除的作用
  • 长治门户网站租服务器网站
  • 大连网站排名优化价格怎样做网贷网站
  • AAAI 2026 Oral 之江实验室等提出MoEGCL:在6大基准数据集上刷新SOTA,聚类准确率最高提升超8%!
  • 当当网的网站建设要求北京学校网站建设公司
  • 【Vue3】 中的 【unref】:详解与使用
  • 衡阳做淘宝网站建设wordpress 营销页面
  • BdsEntry
  • 网站备案后 如何建设tp框架做餐饮网站
  • 自动化 东莞网站建设如何提高用户和网站的互动性
  • Linux网络编程:(八)GCC/G++ 编译器完全指南:从编译原理到实战优化,手把手教你玩转 C/C++ 编译
  • 网站负责人拍照集团公司网站设计
  • 重钢建设公司官方网站电脑访问手机网站跳转