我不明白这是怎么不工作的:
Node* BST::Minimum(Node *curr) {
if (curr->left != NULL) {
Minimum(curr->left);
}
return curr;
}
我的意思是我已经插入了很好,打印后序,不订购器,预购很好。
我在做傻事吗?这只会打印根节点。
调用 Minimum
并丢弃其返回值。你想要return Minimum(curr->left);
.
顺便说一下,我强烈建议以迭代方式而不是递归方式执行此操作,如下所示:
Node* node = curr;
while (node->left != NULL)
node = node->left;
return node;