題目描述:
給出乙個完全二叉樹,求出該樹的節點個數。
說明:完全二叉樹的定義如下:在完全二叉樹中,除了最底層節點可能沒填滿外,其餘每層節點數都達到最大值,並且最下面一層的節點都集中在該層最左邊的若干位置。若最底層為第 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 解題思路 二分...