前言
持续更新了
正文
问题来源
本问题来自leetcode上的515题。
问题描述
您需要在二叉树的每一行中找到最大的值。
示例 1:
输入:
1
/ \
3 2
/ \ \
5 3 9
输出: [1, 3, 9]
分析:
class Solution {
public:
vector<int> largestValues(TreeNode* root) {
vector<int> res;
if(root == NULL) return res;
queue<TreeNode*> q;
q.push(root);
while(!q.empty()) {
int levelSize = q.size();
int levelMax = INT_MIN;
for(int i = 0; i < levelSize; i++) {
TreeNode* curNode = q.front();
q.pop();
levelMax = max(curNode->val, levelMax);
if(curNode->left) q.push(curNode->left);
if(curNode->right) q.push(curNode->right);
}
res.push_back(levelMax);
}
return res;
}
};
总结:
勤思考。
结语
不管怎么样好好加油。