相信大家在初学链表时一定被下面这些函数的二级指针搞得晕头转向的,疑惑包括但不限于:
什么是二级指针?
为什么链表要用到二级指针?
为什么同样是链表的函数,有的要用二级指针而有的只要用一级指针?...为什么同样是链表,有的链表中使用了二级指针?而有的链表却只需要使用一级指针?
要搞清上面这些问题,我们就要先搞清楚二级指针在链表中的作用到底是什么,接下来我将带大家一起探究二级指针的"前世今生"....)图示如下:
2.空链表时的链表尾插
尾插操作我们已经在之前单链表详解中详细介绍过了,
因此这里只演示其逻辑图示:(紫色线条代表操作)
物理图示:(紫色线条代表操作)
可以看到,在空链表时的链表尾插操作中...,我们更改了头指针plist的指向,因此在函数中要使用到二级指针.
3.非空链表时的尾插逻辑
逻辑图示:(紫色线条代表操作)
物理图示:(紫色线条代表操作)
可以看到,在非空链表时的尾插中我们更改的是...同理,函数中更改了头指针的指向后,我们将新的头指针的地址记录下来并返回给主函数,然后在主函数中重新使用plist指针接收这个头即可更新头指针的指向:
该思路代码示例如下(仅展示头插部分主函数与头插函数逻辑