每天学习一算法系列(8) (编程判断俩个链表是否相交)

题目:编程判断俩个链表是否相交,给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。

 

为了简化问题,我们假设俩个链表均不带环。

 编程之美|微软技术面试心得 <wbr> <wbr>经典算法题精选

 

问题扩展:

1.如果链表可能有环列?

2.如果需要求出俩个链表相交的第一个节点列?

 

题目出自:http://topic.csdn.net/u/20101011/16/2befbfd9-f3e4-41c5-bb31-814e9615832e.html

 

 

思路:去迅雷面试过一题类型于上面题目的算法题,这样的题目大概思路是这样:

1. 先判断带不带环.
2. 如果都不带环,就判断尾节点是否相等
3. 如果都带环,判断一链表上俩指针相遇的那个节点,在不在另一条链表上,如果在,则相交,如果不在,则不相交。

4. 如果一个带环一个不带环,遍历带环那个链表,判断带环链表上俩指针相遇的那个节点,在不在另一条链表上,如果在,则相交,如果不在,则不相交。
//第4点考虑欠缺,修改为以下:(多谢zdbill 指出)

4. 如果一个带环一个不带环,则必定不相交,如果相交那么它们并共享同一环。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值