这道题我先开始按照普通二叉树来求个数,结果超时了
因为return countNodes(root->left)+countNodes(root->right)+1相当于遍历了整个完全二叉树
因为二叉树除了最底层节点可能没填满外,其余每层节点数都达到最大值,
并且最下面一层的节点都集中在该层最左边的若干位置,所以节点深度是h时,满二叉树节点个数是2^k - 1。
https://blog.csdn.net/will130/article/details/50564695 的博客里解释了一下,但是我没搞懂这样为什么他的做法可以降低时间复杂度,
https://blog.csdn.net/freeelinux/article/details/53679708也有详细的解释,大家认真看吧