515. Find Largest Value in Each Tree Row
问题:
找出BTree每一层最大的数
思路:
使用队列,从右向左逐层遍历
code:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
vector<int> largestValues(TreeNode* root) {
vector<int> lvs;
if (root == NULL)
return lvs;
queue<TreeNode*> que;
que.push(root);
while (!que.empty()) {
int row_size = que.size();
int lv = que.front()->val;
for (int i = 0; i < row_size; i++) {
TreeNode* r = que.front(); // access the first element
que.pop(); // removes the first element
if (r->right)
que.push(r->right);
if (r->left)
que.push(r->left);
if (r->val > lv)
lv = r->val;
}
lvs.push_back(lv);
}
return lvs;
}
};