一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 2151|回复: 12
收起左侧

[树/链表/图] LinkedList Dummy Head有什么好处?

[复制链接] |试试Instant~ |关注本帖
纠结帝 发表于 2014-10-23 09:44:46 | 显示全部楼层 |阅读模式

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

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
这里说道“第四,dummy head非常有用,可以使代码简洁很多,并且容易写bug free的code。这个技巧可以大量使用

不是很能体会到dummy head的用途

大家能举几个常见的例子吗? 谢谢!
迷茫的考拉 发表于 2014-10-23 09:50:15 | 显示全部楼层
因为有了dummy之后,所有的节点都变成拥有前置节点的节点了。
所以就不用担心处理头节点这个特殊情况了。

而且你最后需要返回的仅仅是dummy.next,不用花功夫去保持住你的头结点了。

你可以看看leetcode里面几个反转linked list的题目~
回复 支持 反对

使用道具 举报

海拔2纳米 发表于 2014-10-23 09:50:59 | 显示全部楼层
比如两个排好序的链表叫你合成一个,那么有两种操作方式:
把一个链表插入到另一个链表里;
把这两个链表插入到一个新的链表(dummy head)里。

如果选方案一,那么你需要先去判断是A插入B里还是B插入A里。选方案二就没有这个问题了。
试试这道题就知道我的意思了
回复 支持 反对

使用道具 举报

nunuh89 发表于 2014-10-23 09:51:54 | 显示全部楼层
http://www.coderanch.com/t/60566 ... -Singly-Linked-List

完全不会java的路过  这个看着写得挺好的样子
回复 支持 反对

使用道具 举报

daihao0310 发表于 2014-10-23 09:57:10 | 显示全部楼层
比如删除节点神马的会容易很多~另外你在做while循环的时候可以直接判断while(p.next!=null)
回复 支持 反对

使用道具 举报

 楼主| 纠结帝 发表于 2014-10-23 10:22:28 | 显示全部楼层
海拔2纳米 发表于 2014-10-23 09:50
比如两个排好序的链表叫你合成一个,那么有两种操作方式:
把一个链表插入到另一个链表里;
把这两个链表 ...

这个好处很明显啊!
谢谢!

喜欢你的头像 xd
回复 支持 反对

使用道具 举报

 楼主| 纠结帝 发表于 2014-10-23 10:29:34 | 显示全部楼层
daihao0310 发表于 2014-10-23 09:57
比如删除节点神马的会容易很多~另外你在做while循环的时候可以直接判断while(p.next!=null)

不是很明白为什么有dummy head删除节点会容易?能巨一个例子 或者再说多一点吗?

“在做while循环的时候可以直接判断while(p.next!=null)”
这个是不是担心head是null?
所以不用dummy head的话要加一个 if head == null ?

谢谢!
回复 支持 反对

使用道具 举报

 楼主| 纠结帝 发表于 2014-10-23 10:31:08 | 显示全部楼层
迷茫的考拉 发表于 2014-10-23 09:50
因为有了dummy之后,所有的节点都变成拥有前置节点的节点了。
所以就不用担心处理头节点这个特殊情况了。
...

谢谢 我做一下看看!
回复 支持 反对

使用道具 举报

 楼主| 纠结帝 发表于 2014-10-23 10:32:09 | 显示全部楼层
nunuh89 发表于 2014-10-23 09:51
http://www.coderanch.com/t/605669/java/java/Dummy-Head-Singly-Linked-List

完全不会java的路过  这 ...

谢谢分享!

回复 支持 反对

使用道具 举报

daihao0310 发表于 2014-10-23 11:30:22 | 显示全部楼层
纠结帝 发表于 2014-10-23 10:29
不是很明白为什么有dummy head删除节点会容易?能巨一个例子 或者再说多一点吗?

“在做while循环的时 ...

举个例子来说吧,如果你要删一个节点,通常需要找到这个点的先驱节点。但如果需要删除的是链头的话,用dummy head就不用考虑这种特殊情况。
回复 支持 反对

使用道具 举报

austurela 发表于 2014-10-23 12:02:35 | 显示全部楼层
这叫做null design pattern
回复 支持 反对

使用道具 举报

 楼主| 纠结帝 发表于 2014-10-23 13:19:45 | 显示全部楼层
austurela 发表于 2014-10-23 12:02
这叫做null design pattern

谢谢!

请问仁兄的design pattern是怎么学来的? 有专门看书或者上课吗? 求资源分享!

我也是大三大德州海本啊 和你比起来进度差远了
回复 支持 反对

使用道具 举报

austurela 发表于 2014-10-23 13:22:21 | 显示全部楼层
纠结帝 发表于 2014-10-23 13:19
谢谢!

请问仁兄的design pattern是怎么学来的? 有专门看书或者上课吗? 求资源分享!

上课
Advanced OOP
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-3 22:29

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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