給定乙個非空二叉樹, 返回乙個由每層節點平均值組成的陣列.
示例 1:
輸入:
3/ \
9 20
/ \
15 7
輸出: [3, 14.5, 11]
解釋:第0層的平均值是 3, 第1層是 14.5, 第2層是 11. 因此返回 [3, 14.5, 11].
注意:
節點值的範圍在32位有符號整數範圍內。
思路分析:我們可以採用先序遍歷,得到每一層的和以及每一層的節點個數,我們也可以使用層序遍歷,得到每一層的平均值。
方法一:遞迴法。使用先序遍歷,得到每一層的和以及每一層的節點個數,然後計算每一層的平均值。
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
return result;
}//先序遍歷root,deepth代表的是root的深度
void
mydfs
(treenode* root,
int deepth, vector<
double
>
&result, vector<
int>
&deepcnt)
//先訪問根節點
if(result.
size()
== deepth)
else
//後訪問左子樹,再訪問右子樹
方法二:採用層序遍歷。逐層訪問二叉樹,得到每層的平均值。leetcode 二叉樹的層次遍歷
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
myqueue.
push
(root)
; treenode *tempnodeptr = null;
while
(!myqueue.
empty()
)if(tempnodeptr-
>right != null)
} result.
push_back
(tempsum / tempqueuesize)
;//將此層的平均值放入結果
leetcode 637 二叉樹的層平均值
給定乙個非空二叉樹,返回乙個由每層節點平均值組成的陣列.示例 1 輸入 3 9 20 15 7 輸出 3,14.5,11 解釋 第0層的平均值是 3,第1層是 14.5,第2層是 11.因此返回 3,14.5,11 注意 節點值的範圍在32位有符號整數範圍內。definition for a bin...
LeetCode 637 二叉樹的層平均值
題目 給定乙個非空二叉樹,返回乙個由每層節點平均值組成的陣列.示例 1 輸入 3 9 20 15 17 輸出 3,14.5,11 解釋 第0層的平均值是 3,第1層是 14.5,第2層是 11.因此返回 3,14.5,11 原始碼 definition for a binary tree node....
leetcode 637 二叉樹的層平均值
題目鏈結 給定乙個非空二叉樹,返回乙個由每層節點平均值組成的陣列。definition for a binary tree node.struct treenode class solution if node right results.push back total 1.0 n total 0 ...