由于是完全二叉树,所以我们可以预先知道整棵树的形状,因此可以判断根节点的两个子节点哪个是满二叉树,哪个不是满二叉树(必然是一边满,一边不满),对于满的子节点,我们可以直接求出它的不同子树的个数,也就是说我们只要递归搜不满的子节点就行了,这样一来,我们的复杂度就只有logn了. 当然还要解决相同子树判重的问题(只有满二叉子树才会出现重复),这里我用了vis数组来标记已经计算过的子树(例如vis[i],代表树高为i+1的满二叉树,这里注意标记了树高为i的满二叉树,那么所有树高比i+1小的也都要标记掉…