515. Find Largest Value in Each Tree Row

来源:互联网 发布:mac怎么下lol 编辑:程序博客网 时间:2024/06/05 22:50

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;    }};
0 0