- 题目:
您需要在二叉树的每一行中找到最大的值。
示例:
输入:
1
/ \
3 2
/ \ \
5 3 9
输出: [1, 3, 9]
- 解题思路
层次遍历,找出每行的最大值即可。
代码实现:
vector<int> largestValues(TreeNode* root) {
vector<int> res;
if(!root) return res;
deque<TreeNode*> qu;
qu.push_back(root);
while(!qu.empty())
{
int size = qu.size();
int Max = INT_MIN;
for(int i = 0; i < size; i++) {
TreeNode* temp_Node = qu.front();
qu.pop_front();
if(Max < temp_Node->val)
Max = temp_Node->val;
if(temp_Node->left)
qu.push_back(temp_Node->left);
if(temp_Node->right)
qu.push_back(temp_Node->right);
}
res.push_back(Max);
}
return res;
}