判断链表是否相交并找出交点
生活随笔
收集整理的这篇文章主要介绍了
判断链表是否相交并找出交点
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
问题概述
单链表定义如下:
public class ListNode {int val;ListNode next;ListNode(int x) {val = x;next = null;}}编写程序, 找出两个链表的交点。
如图所示,链表 A 和链表 B 在节点 8 处相交。
算法思路
首先确定一个事情:
如果两个链表有交点, 那么这两个链表的尾节点一定是相等的。现在不仅需要判断是否有交点, 还需要找出这个节点。继续观察图形, 可以得出,如果两个链表相交,那么较长链表在往后移动 (∣length1−length2∣|length1-length2|∣length1−length2∣)个长度单位后,两个链表往后查找的速度一致,即可以用判断两个节点是否相等的方式来判断交点的位置了。
代码实现:
总结
以上是生活随笔为你收集整理的判断链表是否相交并找出交点的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 数据结构学习笔记(七):哈希表(Hash
- 下一篇: JDBC预状态通道设置时间格式的问题