校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 数据结构 > 二叉树遍历
题目

设一课完全二叉树共有999个结点,则在该二叉树中的叶节点个数是?

A.499

B.500

C.501

D.不惟一

解答

正确答案是 B

其实完全二叉树有这个性质,最后一个节点/2就得到他的父节点了,而此时的父节点必然是最后一个父节点,也就是说他之后的结点都是叶子节点了所以叶子节点为,999-999/2 = 500.要懂得运用性质,不然题目的完全二叉树是干啥的。

C 7条回复 评论
我叫新账号

收藏不息,战斗不止

发表于 2023-07-13 22:00:00
0 0
青梅煮酒

想应聘产品经理岗位,不过还没有拿的出手的经历和作品,只做过一些产品运营的工作,都比较浅,只是入了个门,觉得心很虚。

发表于 2021-09-13 21:15:00
0 0
越过山丘

这是我一直没记住的一个重点

发表于 2021-09-08 20:05:00
0 0
落地成盒

如果一棵具有n个结点的深度为k的二叉树,它的每一个结点都与深度为k的满二叉树中编号为1~n的结点一一对应,这棵二叉树称为完全二叉树。

可以根据公式进行推导,假设n0是度为0的结点总数(即叶子结点数),n1 是度为1的结点总数,n2是度为2的结点总数,由二叉树的性质可知:n0=n2+1,则n= n0+n1+n2(其中n为完全二叉树的结点总数),由上述公式把n2消去得:n= 2n0+n1-1,由于完全二叉树中度为1的结点数只有两种可能0或1,由此得到n0=(n+1)/2或n0=n/2。

总结起来,就是 n0=[n/2],其中[]表示上取整。可根据完全二叉树的结点总数计算出叶子结点数。
答案:叶子节点数:n0=(999+1)/2=500

发表于 2018-10-13 15:56:12
0 0
子不语

对于完全二叉树,如果总结点数是奇数,则叶结点数是[总结点数/2](向上取整),同时度为1的结点数为0,相反,如果总结点数是偶数,则叶结点数是:总结点数/2,同时度为1的结点数为1

发表于 2018-10-13 15:56:00
0 0
虹猫

根据二叉树第k层上的节点数 最多有 2 k-1 (k≥1) ; 深度为m的二叉树的节点数最多有 2 m -1;

m=10共10层;

前9层是满二叉树,总的节点数是:511

则第10层的叶子节点数目是:999-511=488

第九层的非叶子节点数目是:488/2=244;

第九层的节点数目是:256

则第九层的叶子节点数目是:256-244=12

则总的叶子节点数目是:12+488=500

发表于 2018-10-13 15:55:52
0 0
浅色回忆

n0+n1+n2=999,n2=n0-1,2*n0-1+n1=999,因为为完全二叉树n1只可能为1或者0,若为1,n0不是整数,则只可能为0,求得n0=500

发表于 2018-10-13 15:54:56
0 0