0

我不明白这是怎么回事:

Node* BST::Minimum(Node *curr) {

    if (curr->left != NULL) {
        Minimum(curr->left);
    }

    return curr;

}

我的意思是我已经很好地插入了,并且 printpostorder、inorderr、preorder 都很好。

我在做傻事吗?这只是打印根节点。

4

1 回答 1

2

您调用Minimum并丢弃它的返回值。你想要return Minimum(curr->left);

顺便说一句,我强烈建议以迭代方式而不是递归方式执行此操作,如下所示:

  Node* node = curr;
  while (node->left != NULL)
      node = node->left;
  return node;
于 2012-12-10T14:50:39.720 回答