据我所知,n节点二叉树的最小叶节点数为1,叶节点的最大数目为⌈n/2⌉。我的假设正确吗?
发布于 2019-09-15 04:18:05
证明:
<1 left branch & 1 right branch under the same leaf>,您可以阻止一片叶子这样,并创建2个新的叶(每2个节点+1叶)<left branch>或<right branch>,您都可以阻止叶子这样做,并创建一个新的叶(每一个节点+0叶)因此,在最大叶节数<= 1+ ((n-1)//2) = ⌈n/2⌉
发布于 2022-07-10 21:09:45
要完成并可能纠正@Kostas所建议的,您需要做的是获得最多的叶子,这是一棵完美的(完整)二叉树,它将使所有非叶节点,节点有两个子节点。
无论如何,这两者之间的关系是
A=C+1
如果叶子的数量是最大的,那就意味着所有不是叶子的节点都有两个子节点,所以只有在这种情况下,它才意味着:a+C=N(总no )。(节点)
如果我们扭转方程,我们得到:C=N => A=N+1 => A= (N+1)/2
最后,具有N个总节点的二叉树的最大叶数(终端节点)是(N+1)/2。
你甚至可以用一个程序或一张纸来试一试,当我尝试使用它的时候,这里的另一个答案就不起作用了,现在我可能完全错了。
https://stackoverflow.com/questions/57940296
复制相似问题