題目網址:https://leetcode.cn/problems/average-of-levels-in-binary-tree/
題意:給一 Binary Tree(BT), 計算每一層的平均值。


Solution:
想法:利用 BFS
class Solution { public: vector<double> averageOfLevels(TreeNode* root) { if (!root) { return {}; }
vector<double> res; queue<TreeNode*> q; q.push(root);
while (!q.empty()) { const int size = q.size(); double sum = 0;
for (int i = 0; i < size; ++i) { const auto node = q.front(); q.pop();
sum += node->val; if (node->left) { q.push(node->left); }
if (node->right) { q.push(node->right); } }
res.emplace_back(sum / size); }
return res; } };
|
- time:$O(n)$ ➔ 遍歷整個 BT
- space:$O(n)$ ➔ 取決於樹的高度, worse case 為 skew tree, tree