由于考研需求,又乖乖滚回来捧起数据结构了,一年没碰书,忘得都差不多了,还得捡回来,哭死了。
进入正题,为何头指针为head的带头结点的单链表判空条件head->next==null?其实一开始这里也是没啥问题的,只是突然产生了疑问点——head为头指针,储存了头结点的地址,按照我残余的一点指针知识,我总感觉不对,head只是个地址,咋可以直接head->next使用呢?其实哈,这里又产生了和我之前学结构体这个知识点一样的纠结点(嘿嘿,其实这里也算是结构体类型)——结构体
总之和结构体类型一样这个指向符号“->”,这里是有特殊规定的,比如你定义个结构体类型
struct student { int age; float score; char name[100]; }*pstu,stu;你用stu.age,pstu->age或者(*pstu).age都是一样可以取到成员变量的,这里的pstu它也是个地址,但是c语言就是这么规定了利用pstu->age可以取到其结构体内部成员变量(记住就好)所以不难理解为啥head这个指向头结点的指针为啥用head->next就能取到头结点结构体中的next成员变量了。
如此便恍然大悟,头结点中next成员变量存储的是下一个结点的地址,若next域中为null,所以除了头结点外,链表中无其他结点,于是单链表判空。
版权声明:本文为qq_41113008原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。