題目:給定乙個完全二叉樹的頭結點,求節點的個數。
要求時間複雜度低於o(n)
思路:利用完全二叉樹的特點,分別求出左右子樹的高度l1,r1,如果l1 = r1,則左子樹是滿二叉樹,根據高度直接求出節點
個數,接著遞迴右子樹。同理如果l1 != r1,則右子樹是滿二叉樹,直接得到右子樹的節點個數,遞迴左子樹。
public static class treenode
}public static int countnodes(treenode root) else
}private static int getlefthegiht(treenode node)
return 1 + getlefthegiht(node.left);
}
求完全二叉樹的節點個數
已知一棵完全二叉樹,求其節點的個數 要求 時間複雜度低於o n n為這棵樹的節點個數 因為是完全二叉樹,除了最後一層都是填滿的,因此我們可以利用這個性質。首先求出這個二叉樹最大的高度,然後求其右子樹的最大高度,如果兩者是相等的,就說明左邊是填滿的,我們可以直接計算數量,否則的話就說明右面的最大高度是...
完全二叉樹的節點個數
給出乙個完全二叉樹,求出該樹的節點個數。說明 完全二叉樹的定義如下 在完全二叉樹中,除了最底層節點可能沒填滿外,其餘每層節點數都達到最大值,並且最下面一層的節點都集中在該層最左邊的若干位置。若最底層為第 h 層,則該層包含 1 2h 個節點。示例 輸入 1 2 3 4 5 6 輸出 6 defini...
完全二叉樹的節點個數
222.完全二叉樹的節點個數 演算法 如果左子樹高度和右子樹高度相等,說明左子樹是滿二叉樹,節點個數為 如果左子樹高度和右子樹高度不相等,說明右子樹是滿二叉樹,節點個數為 如下 definition for a binary tree node.public class treenode class...