求完全二叉樹的節點個數

2021-10-06 02:50:57 字數 667 閱讀 3469

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

要求:時間複雜度低於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...