加上你的主动和坚持,轻松拿下链表代码完全没有问题。
技巧一:理解指针或引用的含义
事实上,看懂链表的结构并不是很难,但是一旦把它和指针混在一起,就很容易让人摸不着头
脑。所以,要想写对链表代码,首先就要理解好指针。
我们知道,有些语言有“指针”的概念,比如 C 语言;有些语言没有指针,取而代之的是“引
用”,比如 Java、Python。不管是“指针”还是“引用”,实际上,它们的意思都是一样的,
都是存储所指对象的内存地址。
接下来,我会拿 C 语言中的“指针”来讲解,如果你用的是 Java 或者其他没有指针的语言也没
关系,你把它理解成“引用”就可以了。
实际上,对于指针的理解,你只需要记住下面这句话就可以了:
将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指针,或者反过来说,指针中存储
了这个变量的内存地址,指向了这个变量,通过指针就能找到这个变量。
这句话听起来还挺拗口的,你可以先记住。我们回到链表代码的编写过程中,我来慢慢给你解
释。
在编写链表代码的时候,我们经常会有这样的代码:p->next=q。这行代码是说,p 结点中的
next 指针存储了 q 结点的内存地址。
还有一个更复杂的,也是我们写链表代码经常会用到的:p->next=p->next->next。这行代码
表示,p 结点的 next 指针存储了 p 结点的下下一个结点的内存地址。
掌握了指针或引用的概念,你应该可以很轻松地看懂链表代码。恭喜你,已经离写出链表代码近
了一步!
技巧二:警惕指针丢失和内存泄漏
不知道你有没有这样的感觉,写链表代码的时候,指针指来指去,一会儿就不知道指到哪里了。
所以,我们在写的时候,一定注意不要弄丢了指针。
指针往往都是怎么弄丢的呢?我拿单链表的插入操作为例来给你分析一下。
评论