遍历链表。为什么检查"当前!= NULL"而不是" current-> next!= NULL"?

时间:2018-04-28 15:35:33

标签: c++ list

遍历链表时,while循环通常是

while (current != NULL)

但是,为什么"当前!= NULL"而不是" current-> next!= NULL"?

1 个答案:

答案 0 :(得分:0)

使用链接列表和其他数据结构时,确保在特定算法和方案中考虑所有边缘情况非常重要。

通常

current->next == NULL;

会充分告诉您是否没有更多节点,因此您在最后一个节点上。但是,以下情况呢?

Node* current = NULL;
current->next == NULL; 

现在你正在尝试使用一个C ++禁止的空指针;行为本身是未定义的,并且可能使用空指针异常

使代码崩溃