头指针 head 和头节点是两个概念
头指针也就是指向头节点的指针
指针的概念
一般我们对于指针,会说它是指向某个值的,指针本身是一个地址值
我们拿箱子来比喻,也就是指针是箱子本身,而指针所指向的值就是箱子里面的东西
在代码中,星号相当于打开箱子的操作
头指针和头节点
这里头指针就相当于这个箱子,而头节点就相当于箱子里的东西
这样的话我们就能理解二者的关系了
判断单链表是否为空
// 有头节点的情况下
bool isEmpty() {
// 这里 head 本身是装了东西的,也就是头节点
return head->next == NULL
}
// 无头节点
bool isEmpty() {
// 而这里head 本身没装东西,那么空就是这个地址值为空了
return head == NULL
}
*代表什么?
一般的说法是解引用,这里就是“打a箱子”
所以这个头节点本身就是*head
所以我们也可以这样写
// 有头节点的情况下
bool isEmpty() {
// 这里 head 本身是装了东西的,也就是头节点
return (*head).next == NULL
}
// 无头节点
bool isEmpty() {
// 而这里head 本身没装东西,那么空就是这个地址值为空了
return (*head).next == NULL
}