设一课完全二叉树共有999个结点,则在该二叉树中的叶节点个数是?
A.499
B.500
C.501
D.不惟一
正确答案是 B
其实完全二叉树有这个性质,最后一个节点/2就得到他的父节点了,而此时的父节点必然是最后一个父节点,也就是说他之后的结点都是叶子节点了所以叶子节点为,999-999/2 = 500.要懂得运用性质,不然题目的完全二叉树是干啥的。
收藏不息,战斗不止
想应聘产品经理岗位,不过还没有拿的出手的经历和作品,只做过一些产品运营的工作,都比较浅,只是入了个门,觉得心很虚。
这是我一直没记住的一个重点
如果一棵具有n个结点的深度为k的二叉树,它的每一个结点都与深度为k的满二叉树中编号为1~n的结点一一对应,这棵二叉树称为完全二叉树。
对于完全二叉树,如果总结点数是奇数,则叶结点数是[总结点数/2](向上取整),同时度为1的结点数为0,相反,如果总结点数是偶数,则叶结点数是:总结点数/2,同时度为1的结点数为1
根据二叉树第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
n0+n1+n2=999,n2=n0-1,2*n0-1+n1=999,因为为完全二叉树n1只可能为1或者0,若为1,n0不是整数,则只可能为0,求得n0=500
多线程中sleep()和wait()方法的区别
一棵具有n个结点的二叉树,若它有m个叶子结点,则该二叉树中度为1的结点个数是多少?
cookies,sessionStorage 和 localStorage 的区别?
微信公众号中服务号和订阅号合二为一,你怎么看?
收藏不息,战斗不止
想应聘产品经理岗位,不过还没有拿的出手的经历和作品,只做过一些产品运营的工作,都比较浅,只是入了个门,觉得心很虚。
这是我一直没记住的一个重点
如果一棵具有n个结点的深度为k的二叉树,它的每一个结点都与深度为k的满二叉树中编号为1~n的结点一一对应,这棵二叉树称为完全二叉树。
答案:叶子节点数:n0=(999+1)/2=500
对于完全二叉树,如果总结点数是奇数,则叶结点数是[总结点数/2](向上取整),同时度为1的结点数为0,相反,如果总结点数是偶数,则叶结点数是:总结点数/2,同时度为1的结点数为1
根据二叉树第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
n0+n1+n2=999,n2=n0-1,2*n0-1+n1=999,因为为完全二叉树n1只可能为1或者0,若为1,n0不是整数,则只可能为0,求得n0=500