备案不关闭网站,优设网文案下载,网站设计字体最好用,网站开发语言开发题目描述#xff1a;
给定一棵二叉树的根节点 root #xff0c;请找出该二叉树中每一层的最大值。
示例1#xff1a; 输入: root [1,3,2,5,3,null,9]
输出: [1,3,9]示例2#xff1a;
输入: root [1,2,3]
输出: [1,3]提示#xff1a;
二叉树的节点个数的范围是 [0,10…题目描述
给定一棵二叉树的根节点 root 请找出该二叉树中每一层的最大值。
示例1 输入: root [1,3,2,5,3,null,9]
输出: [1,3,9]示例2
输入: root [1,2,3]
输出: [1,3]提示
二叉树的节点个数的范围是 [0,104]-231 Node.val 231 - 1
题目链接
. - 力扣LeetCode
解题主要思路
其实就是很简单的二叉树层序遍历在遍历每层的时候找出最大值即可。
解题代码
/*** Definition for a binary tree node.* 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:vectorint largestValues(TreeNode* root) {vectorint ret;if (root nullptr) return ret;queueTreeNode* que;que.push(root);while (que.size()) {int n que.size();int _max INT_MIN;while (n--) {TreeNode* node que.front();que.pop();if (node-left) que.push(node-left);if (node-right) que.push(node-right);_max max(_max, node-val);}ret.push_back(_max);}return ret;}
};