一棵完全二叉樹的節點總數

2021-09-26 18:19:55 字數 629 閱讀 6904

題意:已知一棵完全二叉樹,求其節點的個數

要求:時間複雜度低於o(n),n為這棵樹的節點個數。

公式節點個數=2^n-1

如果是乙個完全二叉樹最左邊一定有節點求出二叉樹的高度h

public static int mostleftlevel(node node, int level) 

return level - 1;

}

再求出二叉樹的右節點的最左邊的節點是否等於二叉樹的高度h

if==h說明至少二叉樹的左子樹是一棵滿二叉樹 else 右子樹是一顆滿二叉樹。

具體**如下:

public static class node 

} public static int nodenum(node head)

return bs(head, 1, mostleftlevel(head, 1));

} public static int bs(node node, int leval, int h)

if (mostleftlevel(node.right, leval + 1) == h) else

}

二叉樹 求一棵完全二叉樹節點的個數

已知一棵完全二叉樹,求其節點的個數 要求 時間複雜度低於o n n為這棵樹的節點個數 結論 滿二叉樹 高度為l,結點個數 2 l 1個 先遍歷左邊界,求出完全二叉樹的高度h 然後遍歷樹的右子樹的左邊界,看它到沒到最後一層,如果到了最後一層,那麼證明它的左子樹是滿的,高度是h 1 左子樹的結點數2 h...

如何判斷一棵二叉樹是完全二叉樹

嚴蔚敏那本教材上的說法 乙個深度為k,節點個數為 2 k 1 的二叉樹為滿二叉樹。這個概念很好理解,就是一棵樹,深度為k,並且沒有空位。首先對滿二叉樹按照廣度優先遍歷 從左到右 的順序進行編號。一顆深度為k二叉樹,有n個節點,然後,也對這棵樹進行編號,如果所有的編號都和滿二叉樹對應,那麼這棵樹是完全...

如何判斷一棵二叉樹是完全二叉樹

嚴蔚敏那本教材上的說法 乙個深度為k,節點個數為 2 k 1 的二叉樹為滿二叉樹。這個概念很好理解,就是一棵樹,深度為k,並且沒有空位。首先對滿二叉樹按照廣度優先遍歷 從左到右 的順序進行編號。一顆深度為k二叉樹,有n個節點,然後,也對這棵樹進行編號,如果所有的編號都和滿二叉樹對應,那麼這棵樹是完全...