题目描述:

方法1:层次遍历,但是只把每一层的最大值存入 result 数组,非递归

class Solution {
public:
    vector<int> largestValues(TreeNode* root) {
        vector<int> result;
        queue<TreeNode*> que;
        if(!root) return result;
        que.push(root);

        while(!que.empty()){
            int length = que.size();
            TreeNode* temp;
            vector<int> layer;
            for(int i=0;i<length;i++){
                temp = que.front();
                layer.push_back(temp->val);
                que.pop();
                if(temp->left) que.push(temp->left);
                if(temp->right) que.push(temp->right);
            }
            auto max = max_element(layer.begin(),layer.end());
            result.push_back(*max);
        }
        return result;
    }
};