美文网首页
【剑指Offer刷题小记】两个链表的第一个公共节点(JAVA版)

【剑指Offer刷题小记】两个链表的第一个公共节点(JAVA版)

作者: park_one | 来源:发表于2020-03-31 12:39 被阅读0次

题目描述:输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)

问题分析:两个链表如果有公共节点,那么两链表必有一部分是重合的。假如两个链表分别为a、b,a的长度为n,b的长度为m,公共部分的长度为l,那么就有[n+(m-l)]=[m+(n-l)],如果从两个链表的头节点开始进行遍历,把本链表遍历完后的指针指向对方链表的头节点并继续遍历,在n+m-l步后,两个指针将会同时指向第一个公共节点,如下图:

动态示意图

代码截图:

相关文章

网友评论

      本文标题:【剑指Offer刷题小记】两个链表的第一个公共节点(JAVA版)

      本文链接:https://www.haomeiwen.com/subject/ywivuhtx.html