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

2022-07-14 08:54:08 字數 1162 閱讀 4367

題目描述:

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

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

示例:輸入:

1/ \

2 3

/ \ /

4 5 6

輸出: 6

思路分析:

思路一:利用層次遍歷的方式,統計節點總數。

思路二:利用樹的高度來求解。

完全二叉樹的高度可以直接通過不斷地訪問左子樹就可以獲取

判斷左右子樹的高度:

如果相等說明左子樹是滿二叉樹, 然後進一步判斷右子樹的節點數(最後一層最後出現的節點必然在右子樹中)

如果不等說明右子樹是深度小於左子樹的滿二叉樹, 然後進一步判斷左子樹的節點數(最後一層最後出現的節點必然在左子樹中)

**:

思路一:

1/**

2* definition for a binary tree node.

3* struct treenode

8* };9*/

10class

solution );19}

20 tmp[level].push_back(root->val);

21 level_order(root->left, tmp, level+1

);22 level_order(root->right, tmp, level+1

);23}24

int countnodes(treenode*root)

34return

res;35}

36 };

思路二:

1/**

2* definition for a binary tree node.

3* struct treenode

8* };9*/

10class

solution

22return

depth;23}

24int countnodes(treenode*root)

35 };

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方法一 def...

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

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