首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有n个节点的二叉树的最大和最小叶节点数是多少?

有n个节点的二叉树的最大和最小叶节点数是多少?
EN

Stack Overflow用户
提问于 2019-09-15 00:40:38
回答 2查看 11.8K关注 0票数 3

据我所知,n节点二叉树的最小叶节点数为1,叶节点的最大数目为⌈n/2⌉。我的假设正确吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-15 04:18:05

  • 二叉树>= 1的叶节点计数基本上是正确的。
  • 叶节点数<=⌈n/2⌉:

证明:

  • 对于n=1,叶节点计数=1
  • 对于每一个<1 left branch & 1 right branch under the same leaf>,您可以阻止一片叶子这样,并创建2个新的叶(每2个节点+1叶)
  • 对于在一片叶子下创建的每一个<left branch><right branch>,您都可以阻止叶子这样做,并创建一个新的叶(每一个节点+0叶)

因此,在最大叶节数<= 1+ ((n-1)//2) = ⌈n/2⌉

票数 1
EN

Stack Overflow用户

发布于 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

你甚至可以用一个程序或一张纸来试一试,当我尝试使用它的时候,这里的另一个答案就不起作用了,现在我可能完全错了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57940296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档