所以我一直在看这个函数,它对我来说毫无意义。
int findHeight(BinaryNode<E> aNode)
{
if(aNode ==null){
return -1;
}
int lefth = findHeight(aNode.left);
int righth = findHeight(aNode.right);
if(lefth > righth)
return lefth + 1;
else
return righth +1;
}
假设我有一棵由一个根组成的树,它只剩下一个孩子。所以root->leftchild。
这是一个递归函数(它自己叫)。要理解它是如何工作的,您首先必须可视化它的作用。
首先,将每个BinaryNode视为新子树的根。您可以对树中的任何节点调用findheight
,它将返回该子树的高度。
当函数执行时,它调用自己来查找子树中每个左右节点的高度。只要该节点不是null
(表示树的叶子),它就会继续沿着分支行进,直到到达一个为null的节点,此时它将返回一个值-1(因为null节点不计算为树的高度的一部分)。
然后,它将开始return
ing将树备份到根节点。当它从分支中的每个节点返回时,它将在返回值上加1。当它到达顶部时,返回的是最长分支中所有高度的总和(这就是if
语句存在的原因)。
我是Hibernate和JPA的新手,我对这个注释有问题。有人能简单地解释一下这个注释到底在做什么吗?因为在这种情况下,文档对我来说很难理解。 编辑我明白什么是持久上下文,但在代码中,我有这样的例子: 我对@PerustenceContext做什么有问题。抱歉,也许我没有具体说明。
我这里有一些关于Java的练习问题。我们应该在不使用编译器的情况下确定答案。 参考以下方法: 调用product(6)时的输出是什么? D)48 E)70 根据答案,正确的输出是48。我真的不明白为什么这是真的。6不符合基本情况,所以转到else语句。那么,乘积(6-2)=乘积(4),乘积(2)得到乘积(0),乘积(2)得到乘积(0),得到6*4,4*2,2*0,0*0。但那是32,不是48?是不
在这个问题中,的定义是 其左子树中的节点数和其右子树中的节点数几乎相等,这意味着它们的差异不大于1 如果给定一个作为总节点数,这样的树有多少? 另外,如果我们将替换为呢?给定一个,有多少高度平衡的树?
我写了一个函数,如果给定的二叉树是二叉搜索树,则返回true,否则返回false。 我的功能对吗?
日安, 我有一个问题,在我的代码中,一个声明在函数之外有一个错误。 谢谢
给定两棵二叉树,想象一下,当您将其中一棵树覆盖另一棵树时,两棵树的一些节点重叠,而其他节点则不重叠。 您需要将它们合并到一个新的二叉树中。合并规则是,如果两个节点重叠,则将节点值加起来作为合并节点的新值。否则,非空节点将用作新树的节点。 输入: 输出:合并树: 问这个问题可能很幼稚,但这个算法是如何工作的?一旦我们返回这个t2或t1,它就会返回另一个TreeNode,所以从技术上讲,方法应该停止执