返回节点
来源:5-7 删除最大值,最小值
wang_liu
2017-06-02
Node* removeMin(Node* node) { if (node->left == NULL) { Node* rightNode = node->right; delete node; count--; return rightNode; } node->left = removeMin(node->left); return node; // ??? 返回的这个节点到底是那个节点 }
老师,删除最小节点时 ,最后返回的这个节点,我有一点模糊,到底是返回的是哪个节点 ,比如这颗树 要删除 节点 22
41 / 22 \ 33
return node; // ??? 返回的这个节点到底是哪个节点 是 41 ?
写回答
1回答
-
liuyubobobo
2017-06-03
这个函数的语意是:在以node为根的二叉树中,删除掉最小节点,返回删除了最小节点以后新的二叉树的根节点。
所以,是的。在你的例子中,当对以41为根的二叉树调用removeMin(node*=41所在的节点)时,返回的是41这个节点,只不过返回的这个以41为根的二叉树,已经变成了这个样子
41 <- 返回的根节点 \ 33
10
相似问题