`

单链表查找

阅读更多

今天看到一个帖子

http://www.iteye.com/topic/622496

里面提到了如下问题:

附微软面试的面试题:
   1:单链表,遍历一次,找到倒数第N个节点。
   2:单链表,遍历一次,找到中间节点。(这个主要要考虑到单链表元素个数是奇/偶数的情况,这个是关键的,我当时  就是差点没考虑到这个)。
  3:如何把一个大象装到冰箱里。
  4:随手拿一个笔筒,把笔倒掉,问,你会用什么方法测试这个笔筒。

有意义的回复:

 

第一题先把一个节点前进n个节点(当然,前进的时候判断是否遇到null,遇到表明题目无解)。然后用另外一个节点和刚才的节点一起前进,当后一个节点遇到null时,前一个节点就是要找的节点。

第二题和第一题的思路是一样的。一个前进两个节点,一个前进一个,和检测环算法类似。

时间复杂度都是O(n)


你的基本解题思路是对的,第一题也没有什么问题,但第2题有点问题,因为要考虑到元素是偶数的情况下,你是如何确认中间节点的(可以认为偶数没有中间节点,也可以认为偶数有两个中间节点),另外如果是奇数且只有一个节点,你的中间节点又是怎么算的?这些细节问题都是需要考虑到得。

 

4:随手拿一个笔筒,把笔倒掉,问,你会用什么方法测试这个笔筒。
答:再把笔装回去,原因很简单,笔筒就是用来装笔的,要测试的最好方法就是往里面装笔。

 

exloong 写道
第四题你们想怎么去测试就进圈套了,要先问他要测试需求
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics