515. Find Largest Value in Each Tree Row
难度: Middle
刷题内容
原题连接
- https://leetcode-cn.com/problems/find-largest-value-in-each-tree-row/
内容描述
``` 您需要在二叉树的每一行中找到最大的值。
示例:
输入:
1
/ \
3 2
/ \ \
5 3 9
输出: [1, 3, 9] ```
解题方案
思路 1
层次遍历二叉树
vector<int> largestValues(TreeNode* root) {
vector<int> ans;
if(root==NULL)
return ans;
vector<TreeNode*> level;
level.push_back(root);
while(level.size()>0){
vector<TreeNode*> tmp;
int n = level.size();
int maxnum = INT_MIN;
for(int i=0;i<n;i++){
if(maxnum<level[i]->val)
maxnum=level[i]->val;
if(level[i]->left)
tmp.push_back(level[i]->left);
if(level[i]->right)
tmp.push_back(level[i]->right);
}
ans.push_back(maxnum);
level=tmp;
}
return ans;
}