LeetCode 222 完全二叉樹的節點個數

2021-08-21 17:02:01 字數 995 閱讀 2898

給出乙個完全二叉樹,求出該樹的節點個數。

說明:

完全二叉樹的定義如下:在完全二叉樹中,除了最底層節點可能沒填滿外,其餘每層節點數都達到最大值,並且最下面一層的節點都集中在該層最左邊的若干位置。若最底層為第 h 層,則該層包含 1~ 2h 個節點。

示例:

輸入: 

1/ \

2 3

/ \ /

4 5 6

輸出: 6

方法一:

/**

* definition for a binary tree node.

* public class treenode

* }*/class solution else

}}

這種方法執行遇到資料量多會超時失敗

方法二:

思路:1)根節點的右子樹高度等於根節點左子樹的高度時,說明根節點的左子樹是滿二叉樹,可以使用公式 2^h-1。右子樹可以使用遞迴的方式計算。

2)根節點的右子樹高度不等於根節點左子樹的高度時,說明根節點的右子樹是滿二叉樹。而左子樹,應該使用遞迴的方式解決。

/*** definition for a binary tree node.

* public class treenode

* }*/class solution else

}public int count(treenode root)

//根節點左子樹總高度

int lh=countheight(root.left);

//計算根節點右子樹高度

int rh=countheight(root.right);

if(lh == rh){

//根節點左子樹是滿二叉樹,遍歷右子樹遍歷

return (lh>0? 1<0?1《參考鏈結

leetcode 222 二分完全二叉樹

解法一 dfs暴力求解 definition for a binary tree node.class treenode def init self,x self.val x self.left none self.right none class solution def countnodes s...

Leetcode 222 完全二叉樹的節點個數

給出乙個完全二叉樹,求出該樹的節點個數。說明 完全二叉樹的定義如下 在完全二叉樹中,除了最底層節點可能沒填滿外,其餘每層節點數都達到最大值,並且最下面一層的節點都集中在該層最左邊的若干位置。若最底層為第 h 層,則該層包含 1 2h 個節點。示例 輸入 1 2 3 4 5 6輸出 6 解題思路 二分...

Leetcode 222 完全二叉樹的節點個數

給出乙個完全二叉樹,求出該樹的節點個數。說明 完全二叉樹 的定義如下 在完全二叉樹中,除了最底層節點可能沒填滿外,其餘每層節點數都達到最大值,並且最下面一層的節點都集中在該層最左邊的若干位置。若最底層為第 h 層,則該層包含 1 2h 個節點。示例 輸入 輸出 6 1 public class so...