Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
2年前关闭。
我有一项艰巨的任务要解决。我有一棵这样的二叉树:根是11,11的孩子是5和8,5的孩子是13和12,8的右边的孩子是14。
我必须编写一个查看所有叶子的函数,如果叶子是从根到叶子的路径中的最大值,则返回true,否则返回false。因此,例如对于叶14,这显然是正确的,因为从根(11)开始只有一个节点(5),而14是其中的最大值。
我知道这必须是一个递归函数,但是我真的不知道如何解决这个问题。用Python,Java,C或Pascal进行解释会很好,但是如果有人可以给我一个提示来解决这个问题,我已经很高兴了。
谢谢 :)
搜索树理论丰富,比单个答案还大。如果需要,您可以更深入。请享用 :)
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
2年前关闭。
我有一项艰巨的任务要解决。我有一棵这样的二叉树:根是11,11的孩子是5和8,5的孩子是13和12,8的右边的孩子是14。
我必须编写一个查看所有叶子的函数,如果叶子是从根到叶子的路径中的最大值,则返回true,否则返回false。因此,例如对于叶14,这显然是正确的,因为从根(11)开始只有一个节点(5),而14是其中的最大值。
我知道这必须是一个递归函数,但是我真的不知道如何解决这个问题。用Python,Java,C或Pascal进行解释会很好,但是如果有人可以给我一个提示来解决这个问题,我已经很高兴了。
谢谢 :)
最佳答案
该任务非常类似于binary search tree verification
本文中C语言的代码:
bool isBST(struct TreeNode *node, int minKey, int maxKey) {
if(node == NULL) return true;
if(node->key < minKey || node->key > maxKey) return false;
return isBST(node->left, minKey, node->key-1) && isBST(node->right, node->key+1, maxKey);
}
搜索树理论丰富,比单个答案还大。如果需要,您可以更深入。请享用 :)
关于java - 确定二叉树的叶子是否在路径中的最大值的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44219699/
10-11 20:05