数字的二叉树,具有节点结构
type def numbernode
{
unsigned value;
numbernode * left;
numbernode * right;
}
和一个外部指针(指向根节点) 写一个函数 在最大的(numbernode * 树) 如果树不为空,将返回树中最大的数。如果树为空,您的函数应返回 -1。
这是一个测试练习题,我花了几个小时试图弄明白,我需要一些代码帮助!!
最佳答案
一旦你开始以正确的方式思考递归问题,特别是关于树的问题,递归问题真的很容易解决。 “树上最大的数字是多少?它是我自己、我的左 child 和我的右 child 中最高的……我左 child 中最高的是什么?它是那个 child 中最高的,它的左边,它的对……”等等。
非常简单的递归问题。
int largest( node* root )
{
if ( root == null )
return -1;
int left = largest(root->left);
int right = largest ( root->right);
if( root->value > left && root->value > right )
return root->value;
else
return max ( left, right );
}
关于C++ 在二叉树中查找最大数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5860759/