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

【算法】相交链表


一开始我是这么写了一下,但是!虽然两个链表包含相同的数值序列(1 → 8 → 4 → 5),但关键问题在于:这些是数值相同的不同节点实例,而不是同一个节点对象

代码使用HashSet存储的是LinkNode对象的引用,而不是节点的值。当检查set.contains(tmpB)时,它比较的是对象引用是否相同,而不是节点值是否相等。

所以其实如果要构造这个相交链表的话,可以如下:

private static LinkNode test2(){LinkNode node1 = new LinkNode(1);LinkNode node8 = new LinkNode(8);LinkNode node4 = new LinkNode(4);LinkNode node5 = new LinkNode(5);LinkNode A= new LinkNode(4);LinkNode B= new LinkNode(5);A.next = node1;A.next.next = node8;A.next.next.next = node4;A.next.next.next.next = node5;B.next = new LinkNode(0);B.next.next = node1;B.next.next.next = node8;B.next.next.next.next = node4;B.next.next.next.next.next = node5;Set<LinkNode> visited= new HashSet<>();LinkNode tmpA = A;while(tmpA!=null){visited.add(tmpA);tmpA = tmpA.next;}LinkNode tmpB = B;while(tmpB!=null){if(visited.contains(tmpB)){return tmpB;}tmpB = tmpB.next;}return null;}

法二双指针

 ListNode tmpA = headA;ListNode tmpB = headB;while(tmpA!=tmpB){tmpA = (tmpA==null?headB:tmpA.next);tmpB = (tmpB==null?headA:tmpB.next);}

法三 长度差。但是要计算长度,然后判断长短,感觉这个太不优雅了。思路最简单这个。

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

相关文章:

  • Unity FairyGUI笔记
  • 【qml-11】Quick3D实现机器人欧拉旋转、拖动视角
  • 垂直网站建设步骤在线海报设计网站
  • PHP 8.2 vs PHP 8.3 对比:新功能、性能提升和迁移技巧
  • 做的好的阅读类的网站有哪些外贸seo软件
  • 安装MariaDB服务器流程介绍在Ubuntu 22.04系统
  • Windows环境下PDF批量打印的轻量级实现方案
  • 花箱 东莞网站建设9420高清完整版视频在线观看1
  • 响应式设计 手机网站html5 网站源码
  • 下载| Windows 11 ARM版9月官方ISO系统映像 (适合部分笔记本、苹果M系列芯片电脑、树莓派和部分安卓手机平板)
  • 2018年企业网站优化如何做网站 内容优化
  • windows系统电脑远程登录ubuntu系统电脑
  • 【算法】——分治思想与快速排序的实践应用
  • JavaScript ES5 vs ES6 核心特性对比
  • three.js
  • PyQt和Qt、PyQt和PySide的关系
  • 网站开发工具与技术企业网站空间在哪里
  • 网站开发一个页面多少钱天堂网
  • 为软件“分家”:组件化治理大型工程的艺术
  • Windows 系统部署 阿里团队开源的先进大规模视频生成模型 Wan2.2 教程——基于 EPGF 架构
  • 建站之星建出来的网站如何上传请写出网站建设的步骤
  • 金融门户网站建设搜索引擎优化公司排行
  • 【AI】详解BERT的输出张量pooler_output
  • Leecode hot100 - 39. 组合总和
  • 网站建设方案书 广东开发公司成本部职责岗位职责和流程
  • MySQL笔记10
  • Python快速入门专业版(四十八):Python面向对象之多态:不同对象调用同一方法的不同实现(实战案例)
  • C# HttpListener 服务器上无法访问端口
  • [创业之路-605]:半导体行业供应链
  • SpringAOP面向切面编程