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