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

【无标题】面试题 02.07. 链表相交

面试题 02.07. 链表相交

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。

方法一:遍历headA,将每个节点add到HashSet中;然后遍历headB,如果HashSet contains当前节点则返回该节点。

此方法的时间复杂度为O(m+n), m为headA长度,n为headB长度;空间复杂度为O(m),因为需要使用HashSet存储headA。

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) {*         val = x;*         next = null;*     }* }*/
public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {HashSet<ListNode> visited = new HashSet<ListNode>();ListNode i = headA;while(i != null){visited.add(i);i = i.next;}i = headB;while(i != null){if(visited.contains(i)) return i;i = i.next;}return null;}
}

方法二:双指针法
eadA长度为m, headB长度为n,假设headA在相交节点之前长度为a,headB在相交节点之前长度为b,那么应有m+b = n+a,因此使用两个指针i,j分别遍历headA, headB,在一个链表遍历结束后去遍历另一链表,当i == j时候,返回ij即可。

public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {ListNode a = headA;ListNode b = headB;ListNode ins = null;while(a != b){a = (a != null) ? a.next : headB;b = (b != null) ? b.next : headA;ins = a;}return ins;}
}
http://www.lryc.cn/news/107969.html

相关文章:

  • Zotero ubuntu2023安装 关联 ubuntu文献翻译
  • Stable Diffusion教程(7) - PS安装AI绘画插件教程
  • 如何学技术
  • 【云存储】使用OSS快速搭建个人网盘教程(阿里云)
  • 微信小程序iconfont真机渲染失败
  • 万界星空/推出生产制造执行MES系统/开源MES/免费下载
  • 【VxWorks】Vxworks、QNX、Xenomai、Intime、Sylixos、Ucos等实时操作系统的性能特点
  • 17、YML配置文件及让springboot启动时加载我们自定义的yml配置文件的几种方式
  • 18、springboot默认的配置文件及导入额外配置文件
  • Conda换源(Linux)
  • 【C语言学习】数据类型转换
  • 深入了解PostgreSQL:高级查询和性能优化技巧
  • 【C#学习笔记】值类型(1)
  • 二十三种设计模式第二十二篇--中介者模式
  • 小研究 - 微服务系统服务依赖发现技术综述(二)
  • javaee 泛型的上下边界和通配符的使用
  • 【TypeScript】类型声明及应用(二)
  • rust from_utf8_lossy怎么使用?
  • #P0997. [NOIP2006普及组] 数列
  • 做完两年外包,感觉自己废了一半....
  • Kubernetes系列-Ingress
  • 软件测试之Docker常见问题汇总!附解决方法!
  • Python-操作Excel表-openpyxl模块使用
  • 向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录
  • 【HDFS】Block、BlockInfo、BlockInfoContiguous、BlockInfoStriped的分析记录
  • STM32 LoRa(学习二)
  • ASP.NET Core学习路线图
  • 无涯教程-Lua - for语句函数
  • 二叉树的相关题目
  • 【antd之tabs踩坑篇】Tabs有items时切换不起作用