• 07 _ 链表(下):如何轻松写出正确的链表代码?


    基础知识我都掌握了,但是写链表代码还是很费劲。哈哈,的确是这样的!

    想要写好链表代码并不是容易的事儿,尤其是那些复杂的链表操作,比如链表反转、有序链表合并等,写的时候非常容易出错。从我上百场面试的经验来看,能把“链表反转”这几行代码写对的人不足10%。

    为什么链表代码这么难写?究竟怎样才能比较轻松地写出正确的链表代码呢?

    只要愿意投入时间,我觉得大多数人都是可以学会的。比如说,如果你真的能花上一个周末或者一整天的时间,就去写链表反转这一个代码,多写几遍,一直练到能毫不费力地写出Bug free的代码。这个坎还会很难跨吗?

    当然,自己有决心并且付出精力是成功的先决条件,除此之外,我们还需要一些方法和技巧。我根据自己的学习经历和工作经验,总结了几个写链表代码技巧。如果你能熟练掌握这几个技巧,加上你的主动和坚持,轻松拿下链表代码完全没有问题。

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

    事实上,看懂链表的结构并不是很难,但是一旦把它和指针混在一起,就很容易让人摸不着头脑。所以,要想写对链表代码,首先就要理解好指针。

    我们知道,有些语言有“指针”的概念,比如C语言;有些语言没有指针,取而代之的是“引用”,比如Java、Python。不管是“指针”还是“引用”,实际上,它们的意思都是一样的,都是存储所指对象的内存地址。

    接下来,我会拿C语言中的“指针”来讲解,如果你用的是Java或者其他没有指针的语言也没关系,你把它理解成“引用”就可以了。

    实际上,对于指针的理解,你只需要记住下面这句话就可以了:

    将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指针,或者反过来说,指针中存储了这个变量的内存地址,指向了这个变量,通过指针就能找到这个变量。

    这句话听起来还挺拗口的,你可以先记住。我们回到链表代码的编写过程中,我来慢慢给你解释。

    在编写链表代码的时候,我们经常会有这样的代码:p->next=q。这行代码是说,p结点中的next指针存储了q结点的内存地址。

    还有一个更复杂的,也是我们写链表代码经常会用到的:p->next=p->next->next。这行代码表示,p结点的next指针存储了p结点的下下一个结点的内存地址。

    掌握了指针或引用的概念,你应该可以很轻松地看懂链表代码。恭喜你,已经离写出链表代码近了一步!

    技巧二:警惕指针丢失和内存泄漏

    不知道你有没有这样的感觉,写链表代码的时候,指针指来指去,一会儿就不知道指到哪里了。所以,我们在写的时候,一定注意不要弄丢了指针。

    指针往往都是怎么弄丢的呢&#x

  • 相关阅读:
    刷题记录:POJ - 2486Apple Tree
    linux使用yum安装2.x版git
    Spring_boot之自动加载自己的AutoConfiguration
    全球产业链:脑机接口产业链
    外文文献查找技巧方法有哪些
    合宙Air724UG LuatOS-Air LVGL API控件-图片(Gif)
    三款数据可视化工具深度解析:Tableau、ECharts与山海鲸可视化
    ADC的数据读取问题
    软件开发原则
    OA项目之会议通知(查询&是否参会&反馈详情)
  • 原文地址:https://blog.csdn.net/fujuacm/article/details/134076071