点击上方蓝字设为星标
东哥带你搞定算法~ 作者:labuladong 公众号:labuladong 若已授权白名单也必须保留以上来源信息如果让你数一下一棵普通二叉树有多少个节点,这很简单,只要在二叉树的遍历框架上加一点代码就行了。
但是,如果给你一棵完全二叉树,让你计算它的节点个数,你会不会?算法的时间复杂度是多少?
这个算法的时间复杂度应该是 O(logN*logN),如果你心中的算法没有达到这么高效,那么本文就是给你写的。
首先要明确一下两个关于二叉树的名词「完全二叉树」和「满二叉树」。
我们说的完全二叉树如下图,每一层都是紧凑靠左排列的:
我们说的满二叉树如下图,是一种特殊的完全二叉树,每层都是是满