Είμαι προσπαθεί να πάρει το ύψος της BST χρησιμοποιώντας μια στοίβα. Μου είπαν ότι θα πρέπει να χρησιμοποιούν προ-παραγγελία και μέτρηση βρείτε το μεγαλύτερο μέγεθος της στοίβας. Ωστόσο, αυτό δεν φαίνεται να λειτουργεί. Οποιεσδήποτε ιδέες για το τι κάνω λάθος.
int PBT::maxDepth() {
if (!root) {
return -1;
}
int depth=0;
stack<TreeNode *>s;
TreeNode * nodePtr=root;
for (; ; ) {
while (nodePtr) {
s.push(nodePtr);
if (s.size() > depth)
depth = s.size();
nodePtr=nodePtr->left;
}if (s.empty()) {
break;
}
nodePtr=s.top();
s.pop();
nodePtr=nodePtr->right;
}
return depth;
}













