最近笔试接触到了很多二叉树的公式,但很奇怪的是没有汇总文章,接下来就我自己所见到的题型做个汇总。干货~
Q1.已知完全二叉树总结点数 N,求叶子结点数 n?
如果是偶数个节点,叶子节点等于总节点除以2, 即 N % 2==0, n = N/2
如果是奇数个叶子节点等于(总节点+1)除以2, 即 N % 2 == 1, n = (N+1)/2
即向上取整。
推导可参考:https://blog.youkuaiyun.com/stpeace/article/details/40210563
Q2. 已知完全二叉树叶子结点数n, 求总结点数N?
直接计算 : N = 2n
Q3. 已知长度150的队列,对满二叉树进行广度遍历,求二叉树的最大深度?(第一层深度为1)
满二叉树每一层的结点个数为(第一层深度为1)第n层的节点数:2^(n-1),
如果使用150的队列进行广度优先遍历,则每一层的节点数不大于150,
2^(n-1)≤150,2^7=128,2^8=256,n-1最多为7,所以最大深度n=8.
Q4.小根堆 8,15,10,21,34,16,12,删除8后重建堆,最后的叶子节点为?