常用数据结构必知必会
王争
前Google工程师
立即订阅
1 人已学习
课程目录
已完结 5 讲
01 | 数组:为什么很多编程语言中数组都从0开始编号?
02 | 链表(上):如何实现LRU缓存淘汰算法?
03 | 链表(下):如何轻松写出正确的链表代码?
04 | 栈:如何实现浏览器的前进和后退功能?
05 | 队列:队列在线程池等有限资源池中的应用
常用数据结构必知必会
登录|注册

03 | 链表(下):如何轻松写出正确的链表代码?

王争 2019-08-23
上一节我讲了链表相关的基础知识。学完之后,我看到有人留言说,基础知识我都掌握了,但是写链表代码还是很费劲。哈哈,的确是这样的!
想要写好链表代码并不是容易的事儿,尤其是那些复杂的链表操作,比如链表反转、有序链表合并等,写的时候非常容易出错。从我上百场面试的经验来看,能把“链表反转”这几行代码写对的人不足 10%。
为什么链表代码这么难写?究竟怎样才能比较轻松地写出正确的链表代码呢?
只要愿意投入时间,我觉得大多数人都是可以学会的。比如说,如果你真的能花上一个周末或者一整天的时间,就去写链表反转这一个代码,多写几遍,一直练到能毫不费力地写出 Bug free 的代码。这个坎还会很难跨吗?
当然,自己有决心并且付出精力是成功的先决条件,除此之外,我们还需要一些方法和技巧。我根据自己的学习经历和工作经验,总结了几个写链表代码技巧。如果你能熟练掌握这几个技巧,加上你的主动和坚持,轻松拿下链表代码完全没有问题。

技巧一:理解指针或引用的含义

事实上,看懂链表的结构并不是很难,但是一旦把它和指针混在一起,就很容易让人摸不着头脑。所以,要想写对链表代码,首先就要理解好指针。
我们知道,有些语言有“指针”的概念,比如 C 语言;有些语言没有指针,取而代之的是“引用”,比如 Java、Python。不管是“指针”还是“引用”,实际上,它们的意思都是一样的,都是存储所指对象的内存地址。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《常用数据结构必知必会》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(2)

  • soong
    删除节点时的写法,不考虑被删除的节点,似乎也会导致内存泄漏吧!
    2019-08-28
    1
  • 芝士球
    有点搞不清头指针,头指针存放数据嘛

    作者回复: 可以存 也可以不存的 😂

    2019-09-02
    1
收起评论
2
返回
顶部