515.在每个树行中找最大值

原题链接:515.在每个树行中找最大值

思路:
使用模板遍历树的每一层,将每一层的结点的值进行比较,将该层的最大值push_back进result中
返回result即可

全代码:

class Solution {
public:
    vector<int> largestValues(TreeNode* root) {
        queue<TreeNode*> que;
        vector<int> result;
        if(root != NULL) que.push(root);
        while(!que.empty())
        {
            
            int size = que.size();
            //使用宏定义将int最小值赋值给max_val
            int max_val = INT_MIN;
            for(int i = 0; i < size; i++)
            {
                //获取队列头元素
                TreeNode* Node = que.front();
                //头元素弹出
                que.pop();
                //比较最大值,将最大值赋给max_val
                max_val = max(max_val,Node ->val);
                //将该结点的左右子树push进队列内
                if(Node ->left != NULL) que.push(Node ->left);
                if(Node ->right != NULL) que.push(Node ->right);
            }

            result.push_back(max_val);
        }
        return result;



    }
};

你可能感兴趣的:(二叉树,数据结构)