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;
}
};
私はかなりシンプルなインタビューコードを練習していました。単一リンクリストにサイクルがあるかどうかを判断するブールを返す必要があります。私は1ステップ移動する2つのポインタウォーカーと2つのステップを繰り返し実行するランナーを作った。'struct ListNode'型のヌルポインタ内のメンバアクセス
しかし、その後、このコードは私にエラーを与えた:
Line 15: member access within null pointer of type 'struct ListNode'
そのエラーの原因は何?
このコードを実行する静的コード解析ツールはありますか? –
各ステップを2ステップずつ動かすのは危険ですか?リストに偶数の要素があることをどのように知っていますか? – DeiDei
デバッガの使い方を学ぶことをお勧めします。 – juanchopanza