03.链表设计思想和用途
目录介绍
- 01.什么是指针或引用
- 02.指针丢失和内存泄漏
- 03.单链表插入和删除
- 04.留意边界条件处理
- 05.各种链表的
01.什么是指针或引用
- 事实上,看懂链表的结构并不是很难,但是一旦把它和指针混在一起,就很容易让人摸不着头脑。所以,要想写对链表代码,首先就要理解好指针。
- 有些语言有“指针”的概念,比如 C 语言;有些语言没有指针,取而代之的是“引用”,比如 Java、Python。不管是“指针”还是“引用”,实际上,它们的意思都是一样的,都是存储所指对象的内存地址。
- 接下来,拿 C 语言中的“指针”来讲解,如果你用的是Java或者其他没有指针的语言也没关系,你把它理解成“引用”就可以了。
- 实际上,对于指针的理解,你只需要记住下面这句话就可以了:
- 将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指针,或者反过来说,指针中存储了这个变量的内存地址,指向了这个变量,通过指针就能找到这个变量。这句话听起来还挺拗口的,你可以先记住。我们回到链表代码的编写过程中,我来慢慢给你解释。
- 在编写链表代码的时候,我们经常会有这样的代码:p->next=q。这行代码是说,p 结点中的 next 指针存储了 q 结点的内存地址。
- 还有一个更复杂的,也是我们写链表代码经常会用到的:p->next=p->next->next。这