用指针判断线性表是否为空
时间: 2024-09-28 20:14:01 浏览: 40
在使用指针判断线性表(通常是数组或链表)是否为空时,最常用的方式就是检查头指针或者链表的第一个节点指针。以下是针对数组和链表的两个常见情况:
**对于数组:**
如果数组有一个空指针作为边界,比如`nullptr` 或者`NULL`,你可以直接检查指向数组首元素的指针是否为`nullptr`。例如,在C++中,代码可能是这样的:
```cpp
bool isArrayEmpty(int* array, int size) {
return array == nullptr || array[0] == nullptr; // 检查是否指针本身为空,或者首元素指针为空
}
```
这里,如果数组或数组的第一个元素未初始化,`array` 或 `array[0]` 都会返回`nullptr`。
**对于链表:**
链表通常没有明确的“空”节点,但每个节点都有一个`next`指针,可以用来遍历链表。如果你有一个指向链表头节点的指针`head`,可以检查`head`是否为`nullptr`:
```cpp
struct ListNode {
int val;
ListNode* next;
ListNode() : val(0), next(nullptr) {} // 初始化ListNode,next默认为nullptr
};
bool isLinkedListEmpty(ListNode* head) {
return head == nullptr; // 如果链表头指针为空,则链表为空
}
```
在上述代码中,如果链表为空,`head`将指向`nullptr`。
阅读全文