找到两个单向链表的第一个公共节点
2012-05-09 13:58
281 查看
如果两个单向链表有公共节点,则两个链表会构成Y型结构,最后一个节点相同。
我们可以从头开始遍历两个链表,找到最后一个节点的指针,设为p_a,p_b。同时记录下两个链表的长度len_a,len_b(假设len_a >= len_b)。
如果p_a == p_b,则说明两个链表有公共节点,否则没有。
如果有公共节点,则第一个公共节点距起始节点的距离满足 len_a - start_a == len_b - start_b。
所以第一个可能的公共节点距起始节点的距离是 len_a - len_b, 0。我们从这两个节点开始比较,直到找到第一个公共节点。
我们可以从头开始遍历两个链表,找到最后一个节点的指针,设为p_a,p_b。同时记录下两个链表的长度len_a,len_b(假设len_a >= len_b)。
如果p_a == p_b,则说明两个链表有公共节点,否则没有。
如果有公共节点,则第一个公共节点距起始节点的距离满足 len_a - start_a == len_b - start_b。
所以第一个可能的公共节点距起始节点的距离是 len_a - len_b, 0。我们从这两个节点开始比较,直到找到第一个公共节点。
相关文章推荐
- 两个单向链表相交,找到第一个公共节点
- 找到两个单向链表的第一个公共节点
- 找到两个单向链表的第一个公共节点
- 微软面试题:找到两个单向链表的第一个公共节点
- 第六十二题(求两个单向链表的第一个公共节点)
- 两个单向链表的第一个公共节点
- 找到两个链表的第一个公共节点 37--剑指offer
- 剑指offer解题报告(Java版)——找到两个链表的第一个公共节点 37
- 转:判断两个单向链表是否相交,并找到两个单向链表的第一个相交节点
- 两个单向链表的第一个公共节点
- 面试题04:找出两个单向链表的第一个公共节点
- 两个单向链表,找出它们的第一个公共结点。
- 题目:①判断一个单向链表是否有环,如果有环则找到环的入口节点。 ②判断两个单向链表是否相交,如果相交则找到交点节点。
- 两个链表的第一个公共节点
- 寻找两个相交链表的第一个公共节点的问题
- 面试题:两个链表的第一个公共节点
- 剑指offer—两个链表的第一个公共节点
- 两个链表的第一个公共节点
- 找两个链表的第一个公共节点
- 判断两个链表是否有公共节点并返回第一个公共节点