美文网首页
【LeetCode-515 | 在每个树行中寻找最大值】

【LeetCode-515 | 在每个树行中寻找最大值】

作者: CurryCoder | 来源:发表于2021-08-17 23:06 被阅读0次

    1.题目描述

    1.jpg 2.jpg 3.jpg

    2.题解

    #include <iostream>
    #include <vector>
    #include <queue>
    #include <stack>
    #include <algorithm>
    
    using namespace std;
    
    
    struct TreeNode{
        int val;
        TreeNode* left;
        TreeNode* right;
        TreeNode(): val(0), left(nullptr), right(nullptr) {}
        TreeNode(int x): val(x), left(nullptr), right(nullptr) {}
        TreeNode(int x, TreeNode* left, TreeNode* right): val(x), left(left), right(right) {}
    };
    
    
    class Solution {
    public:
        vector<int> largestValues(TreeNode* root) {
            vector<int> result;
            queue<TreeNode*> que;
    
            if(root != nullptr) que.push(root);
    
            while(!que.empty()) {
                int size = que.size();
                int maxValue = INT_MIN;
    
                for(int i = 0; i < size; i++) {
                    TreeNode* cur = que.front();
                    que.pop();
                    maxValue = cur->val > maxValue ? cur->val : maxValue;  // 求出每层的最大值并保存在result数组中
    
                    if(cur->left) que.push(cur->left);
                    if(cur->right) que.push(cur->right);
                }
                result.push_back(maxValue);
            }
            return result;
        }
    };
    

    相关文章

      网友评论

          本文标题:【LeetCode-515 | 在每个树行中寻找最大值】

          本文链接:https://www.haomeiwen.com/subject/txjwbltx.html