Q. 주어진 Binary Tree의 level당 평균값을 구하고, 그 값을 출력하라.
Solution
BFS의 기본 문제.
각 level당 queue의 count를 이용해 레벨 노드의 정보를 얻어 결과 계산.
코드
더보기
vector<double> averageOfLevels(TreeNode* root)
{
vector<double> vOut;
if(root == nullptr)
return vOut;
queue<TreeNode*> qBuff;
qBuff.push(root);
while(qBuff.size() > 0)
{
int cnt = qBuff.size();
double val = 0;
for(int q = 0; q < cnt; ++q)
{
TreeNode* cur = qBuff.front();
val += (double)(cur->val);
qBuff.pop();
if(cur->left != nullptr) qBuff.push(cur->left);
if(cur->right != nullptr) qBuff.push(cur->right);
}
vOut.push_back( val / ((double)cnt) );
}
return vOut;
}
결과.
'Leetcode > Top Interview 150' 카테고리의 다른 글
[Binary Seach Tree][Easy] 530. Minimum Absolute Difference in BST (0) | 2024.06.15 |
---|---|
[Binary Tree BFS][Medium] 103. Binary Tree Zigzag Level Order Traversal (0) | 2024.06.14 |
[Binary Tree General][Medium] 173. Binary Search Tree Iterator (1) | 2024.06.13 |
[Binary Tree General][Medium] 129. Sum Root to Leaf Numbers (0) | 2024.06.11 |
[Binary Tree General][Easy] 112. Path Sum (1) | 2024.06.02 |