📣 Back to School开学季 - VIP通行证5折优惠!蓝莓、Offer多多同步优惠
查看: 3108| 回复: 5
跳转到指定楼层
上一主题 下一主题
收起左侧

Microsoft : 找出相交两链表的交节点

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
两个单项链表彼此相交,求他们第一个交节点

上一篇:Google : 找出第一个只出现一次的字符
下一篇:Microsoft : 找出带环单链表的环起始节点
🔗
darksteel 2011-5-17 09:15:12 | 只看该作者
全局:
回复 1# wwwyhx
相交之后的部分不是全都一样了吗?
回复

使用道具 举报

🔗
darksteel 2011-5-17 09:17:04 | 只看该作者
全局:
回复 2# holyzz
感觉第一个方法更普适些,如果两个链表包含环的话第二个方法就不容易正常工作。不过都需要O(n)空间,不知道有没有像那个链表找环问题似的O(1)空间的解法
回复

使用道具 举报

🔗
 楼主| wwwyhx 2011-5-17 12:59:04 | 只看该作者
全局:
1.哈希一个链表的值,遍历另外一个链表看看有没有和节点在哈希表中,第一个这样的点就是第一个交点。
2.遍历2个链表得到两个链表的长度m和n。假设 M > N, 先从 长度为M的链表前遍历M-N个节点,然后 从长度为M的链表的M-N个节点,和 长度为N的链表的 节点 以相同的步进逐个比较,当发现两个节点的值想等时则为交点。
holyzz 发表于 2011-5-17 00:27



    恩,第二种方法是很好的解法
回复

使用道具 举报

🔗
darksteel 2011-5-17 13:55:45 | 只看该作者
全局:
回复 5# wwwyhx
。。。还以为有什么别的方法,因为如果相交之后的部分存在环那就不方便求链表长度了。不过上面我也说错了,如果不考虑环,那这个做法应该只需要O(1)空间
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表