免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: emacsnw
打印 上一主题 下一主题

一个关于单向链表的面试题。 [复制链接]

论坛徽章:
0
91 [报告]
发表于 2007-05-02 11:55 |只看该作者
原帖由 win_hate 于 2007-4-29 17:51 发表
这个帖子这么长了。看了后面的回复,觉得很多朋友没有理解 Emacsnw 的方法。其实他的方法已经很简明了,相比之下我给出的解答则比较艰涩隐晦。现在把我的方法解释一次,顺带也把 emacsnw 的方法说一下。


1、 ...


赞这个图。。

论坛徽章:
0
92 [报告]
发表于 2007-05-03 17:54 |只看该作者
原帖由 win_hate 于 2007-4-30 09:51 发表
这个帖子这么长了。看了后面的回复,觉得很多朋友没有理解 Emacsnw 的方法。其实他的方法已经很简明了,相比之下我给出的解答则比较艰涩隐晦。现在把我的方法解释一次,顺带也把 emacsnw 的方法说一下。


1、 ...

这个解法太巧妙了

论坛徽章:
0
93 [报告]
发表于 2007-05-08 10:27 |只看该作者

来一个与众不同的

来一个与众不同的,是在其它地方看到的。

原来链表
->->-> x -> ->
       ^    |
       | <- <-
一边走,一边把链表反向
绕了一圈之后,最后会走回起点

同时链表呈

->->-> x <- <-
       |     |
       | -> -> y

显然,过程中可以统计出链表走过的节点数 L,不是环的部分走了2遍,也包括进去了
然后从起点走L/2步,走到那个中间节点,就是y,也是一边走一边反向
然后就是
<-<-<- x <- <- y'
       |     |
       | <- <- y

然后两个指针都从y和y'开始走,各走一步,交点就是x,环起点
至于要还原链表,从y'走向头,反向一次就好了

论坛徽章:
0
94 [报告]
发表于 2007-05-08 10:45 |只看该作者
占个坑,留着用

论坛徽章:
0
95 [报告]
发表于 2007-05-08 11:37 |只看该作者
原帖由 shaohui 于 2007-5-7 18:27 发表
来一个与众不同的,是在其它地方看到的。

原来链表
->->-> x -> ->
       ^    |
       | <- <-
一边走,一边把链表反向
绕了一圈之后,最后会走回起点

同时链表呈

->-& ...


这个是单向链表啊。

论坛徽章:
0
96 [报告]
发表于 2007-05-08 13:02 |只看该作者
最近似乎 总能看到 类似的题目,晕,难道面试管都上ChinaUnix?

论坛徽章:
0
97 [报告]
发表于 2007-05-08 13:32 |只看该作者
原帖由 shaohui 于 2007-5-8 10:27 发表
来一个与众不同的,是在其它地方看到的。

原来链表
->->-> x -> ->
       ^    |
       | <- <-
一边走,一边把链表反向
绕了一圈之后,最后会走回起点

同时链表呈

->-& ...



y和y' 不清楚说的是哪个点,一个是L/2的点,另一个呢?

论坛徽章:
0
98 [报告]
发表于 2007-05-08 17:25 |只看该作者
这个是单向链表啊。


注意每次遍历都会反转的

论坛徽章:
0
99 [报告]
发表于 2007-05-09 09:18 |只看该作者
链表反转的那个方法
b为奇数的时候是不是不行?

论坛徽章:
0
100 [报告]
发表于 2007-05-09 10:46 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP