【编程之美】3.6 - 判断两个链表是否相交
来源:互联网 发布:现实中网络女主播好丑 编辑:程序博客网 时间:2024/06/11 21:47
问题描述:给出两个单向链表的头指针(h1,h2),判断这两个链表是否相交。假设两个链表均不带环。
解法一:直观的想法
判断第一个链表胡每一个节点是否在第二个链表中。
时间复杂度为O(Length(h1)*Length(h2))。
解法二:利用计数的方法
如果两个链表相交,就会有共同的节点。我们可以把第一个链表的节点地址进行hash排序,建立Hash表,然后针对第二个链表的每个节点的地址查询Hash表,如果在表中出现,就说明交点出现。
解法三:转化为另一已知问题
把第二个链表接到第一个链表后面,如果得到的链表有环,则说明这两个链表相交。这样就把问题转化为判断一个链表是否有环。
而判断一个链表是否有环,只需进行遍历看是否会回到起始点就可以判断出来。
解法四:抓住要点
因为“如果两个无环的链表相交与某一节点,那么在这个节点之后的所有节点都是两个链表共有的”。那么可以先遍历第一个链表,记住最后一个节点,然后遍历第二个链表,到最后一个节点时和第一个链表的最后一个节点做比较,若相同,则相交,否则,不相交。
扩展问题:
1.若链表有环呢?如何判断?
2.如何求相交的第一个节点?
- 【编程之美】3.6 - 判断两个链表是否相交
- 编程之美--编程判断两个链表是否相交
- 编程之美-判断两个链表是否相交
- 读书笔记之编程之美 - 3.6 编程判断两个链表是否相交
- 编程之美-3.6-编程判断两个链表是否相交
- 编程之美-3.6-编程判断两个链表是否相交
- 编程之美3.6——编程判断两个链表是否相交
- 编程之美3.6——编程判断两个链表是否相交
- 编程之美3.6 编程判断两个链表是否相交
- 编程之美3.6——编程判断两个链表是否相交
- 编程之美--3.6编程判断两个链表是否相交
- 编程之美3.6——编程判断两个链表是否相交
- 编程之美3.6—判断两个链表是否相交
- 编程之美3.6 判断单链表是否存在环,判断两个链表是否相交问题详解
- [编程之美] PSet3.6 编程判断两个链表是否相交
- 《编程之美》——编程判断两个链表是否相交
- 编程之美-编程判断两个链表(可能含环)是否相交以及相交的第一个结点
- 读《编程之美》有感—判断两个链表是否相交
- sdcard有时会显示d---------的权限
- WRF模式学习_从linux安装开始
- 郁闷,怎么我的S5pv210 android kernel 怎么突然不能make编译了?
- 查询表中重复数据
- 查询表中重复数据
- 【编程之美】3.6 - 判断两个链表是否相交
- adb install apk 失败的解决
- 围观网络之三 -- 浅探索NDIS5.1(1)
- 如何查看占用某端口的程序
- poj 3070 Fibonacci(矩阵乘法快速幂)
- android工程版key(复制自网络)
- MySQL5压缩版安装配置
- 判断android设备(如手机)是否已经ROOT的方法
- 第十六周实验报告 任务三(改)