为什么同样是链表,有的链表中使用了二级指针?而有的链表却只需要使用一级指针?
要搞清上面这些问题,我们就要先搞清楚二级指针在链表中的作用到底是什么,接下来我将带大家一起探究二级指针的"前世今生"....,我们更改了头指针plist的指向,因此在函数中要使用到二级指针.
3.非空链表时的尾插逻辑
逻辑图示:(紫色线条代表操作)
物理图示:(紫色线条代表操作)
可以看到,在非空链表时的尾插中我们更改的是...,因此使用带头结点的链表就可以不使用二级指针操作链表.
2.在外部更改头指针的指向
原理:既然我们在函数内部给plist赋值不会影响到函数外的plist的指向,那么我们直接将更改指向这步操作放在函数外即可...同理,函数中更改了头指针的指向后,我们将新的头指针的地址记录下来并返回给主函数,然后在主函数中重新使用plist指针接收这个头即可更新头指针的指向:
该思路代码示例如下(仅展示头插部分主函数与头插函数逻辑...plist,这样plist就重新指向新头了
return 0;
}
经过测试,这种方法同样可以不使用二级指针就能够完成链表的一系列相关操作,但缺点是只要调用了有可能改变plist的函数,都必须在外面使用