您需要在二叉树的每一行中找到最大的值。
示例:
输入:
1
/ \
3 2
/ \ \
5 3 9
输出: [1, 3, 9]
class Solution {
public:
vector<int> largestValues(TreeNode* root)
{
if(!root) return {};
vector<int> res;
queue<TreeNode *> qu;
qu.push(root);
while(!qu.empty())
{
vector<int> curr;
int count = qu.size();
while(count--)
{
curr.push_back(qu.front()->val);
if(qu.front()->left) qu.push(qu.front()->left);
if(qu.front()->right) qu.push(qu.front()->right);
qu.pop();
}
int s = INT_MIN;
for(auto c : curr)
s = max(s, c);
res.push_back(s);
}
return res;
}
};
本文介绍了一种在二叉树结构中寻找每一层最大值的算法实现。通过使用队列进行层次遍历,该算法能有效地找出每一层的最大数值,并返回一个包含这些最大值的数组。
5411

被折叠的 条评论
为什么被折叠?



