gpt4 book ai didi

c++ - 'struct ListNode' 类型的空指针内的成员访问

转载 作者:可可西里 更新时间:2023-11-01 17:44:22 27 4
gpt4 key购买 nike

struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};

class Solution {
public:
bool hasCycle(ListNode *head) {
if(head == NULL) return false;
ListNode* walker = head;
ListNode* runner = head;
while(runner->next != NULL && walker->next != NULL){
walker = walker->next;
runner = runner->next->next;
if(walker == runner) return true;
}
return false;
}
};

我正在练习一个看起来很简单的面试代码。我必须返回一个 bool 来确定单链表是否有循环。我制作了两个每次迭代移动 1 步的指针 walker 和移动 2 步的运行者。

但是这段代码给了我一个错误:

Line 15: member access within null pointer of type 'struct ListNode'

是什么导致了这个错误?

最佳答案

你只需要确保 runner->next 不为空,但是在赋值之后

runner = runner->next->next;

runner 可以变为 null。

关于c++ - 'struct ListNode' 类型的空指针内的成员访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44734028/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com