2017-03-03 15 views
-1

implementiert ich diese Funktion zu überprüfen, ob ein Baum ein binärer Suchbaum ist, aber es hält einen segfault Fehlerbinäre Suchbaum Segmentierungsfehler in C++

bool checkBST(Node* root) { 
    if(root == nullptr){ 
     return true; 
    } 
    else{ 
     if(root->data <= root->left->data){ 
      return false; 
     } 
     else if(root->data >= root->right->data){ 
      return false; 
     } 
    } 
    return true&&checkBST(root->left)&&checkBST(root->right); 
} 

Antwort

1

Hier werfen:

root->left->data 

wie wollen Sie weiß, dass

root->left 

ist nicht null? Wenn dies der Fall ist, rufen Sie ein undefiniertes Verhalten auf, wenn Sie versuchen, auf das Member data zuzugreifen, das sich möglicherweise über einen Seg-Fehler zeigt.

+0

danke, es hat funktioniert. Ich weiß nicht, wie ich das nicht gesehen habe. – FiyinDaniel