当前位置: 代码迷 >> 综合 >> leetcode 515. Find Largest Value in Each Tree Row (寻找树中每行最大的数)
  详细解决方案

leetcode 515. Find Largest Value in Each Tree Row (寻找树中每行最大的数)

热度:47   发布时间:2023-11-17 00:56:05.0

题目要求

返回二叉树中每行最大的数,看个例子。
在这里插入图片描述

思路分析

实际上就是二叉树的层序遍历问题(BFS),唯一不同的就是每一层的数值需要选出一个最大值保存下来,也很简单,通过一轮比较即可实现。这里要注意每层最大值初始化为INT_MIN,这个是整形中最小的数-2^31。以及不要忘记输入为空[ ]的时候哦!

主要代码c++

/*** 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>result;vector<int> largestValues(TreeNode* root) {
    if(!root) return{
    };queue<TreeNode*>q;q.push(root);while(!q.empty()){
    int size = q.size();int max_val = INT_MIN; //c++最小的整形数,INT_MIN= -2^31for(int i=0; i<size;++i){
    TreeNode* tmp = q.front();q.pop();if(tmp->val > max_val) max_val = tmp->val;if(tmp->left) q.push(tmp->left);if(tmp->right) q.push(tmp->right);}result.push_back(max_val);}return result;}
};
  相关解决方案