| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2076 人关注过本帖
标题:讨论一道微软面试题
取消只看楼主 加入收藏
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
 问题点数:0 回复次数:6 
讨论一道微软面试题
RT
给出两个单向链表的头指针,比如h1、h2,判断链表是否相交,如果不相交返回NULL;
如果相交,返回指向第一个相交节点的指针。要求:时间复杂度控制在O(n)


-----------------------------------------------------------------------
讨论一下方法...
搜索更多相关主题的帖子: 微软 面试 讨论 
2006-10-23 16:20
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 

你的可以判断相交的节点..但是同时比较同一位置的节点吖
h1:a->b->c
h2:c->a->b //这样的就没交点了?
你的不如改进下呢,把连个链表连成环,然后用个临时指针来判断每个节点,是否有p1==p2的时候...不过这时间复杂度是好像得是O(n^2)
...再想想


unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-10-23 18:31
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 
什么是相交的结点

某两个节点的Next指针指向相同的地方

unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-10-23 20:44
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 
"某两个节点"...
意思实说两个链表中"任意"两个节点指向同一个空间...比较的节点是不同位置也可以是相同的位置
你用一个for循环只能让两个链表的指针同时变化,不能达到任意节点之间的比较的

unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-10-23 21:00
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 
楼主指真正意义上的链表相交,不仅data域相同,连地址也要一样。
可以这样做:
1.申请空间保存h1表
2.沿h1表的next/link域,将h1表的指针全部断掉
3.沿h2表向后扫描,扫描到最后的那个结点就是所求的第一相交结点
4.恢复h1表
这个算法的空间复杂度为O(n),时间复杂度也是O(n)。
总觉得把空间复杂度降到O(1)为好,再想想看。


这种破坏性的方法果然可以解决这个问题哦,
如果调整成线性时间复杂度好像不太可能,毕竟结点是任意的哦

unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-10-24 16:56
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 
没考虑到//...再想想~

加个条件呢?
遍历h2时,到最后一个结点后再与保存的h1里的每个节点相比较,如果相同则相交,不同则没有交点,时间复杂度为总的时间复杂度为n(O)+n(O)=n(O);
...好像还是不行 ,保存的地址是变化过的?

[此贴子已经被作者于2006-10-24 18:33:03编辑过]


unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-10-24 17:32
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 
哈希函数...good idea!!
偶没想到唉,不错//

unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-10-24 18:35
快速回复:讨论一道微软面试题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012469 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved