文章目录
题目
方法一:二叉树的层序遍历每一层求最大值max
本题解题过程大体思路和二叉树的层序遍历没有什么不同
java
class Solution {
public List<Integer> largestValues(TreeNode root) {
List<Integer> res = new ArrayList<>();
if(root == null) return res;
Deque<TreeNode> queue = new LinkedList<>();
queue.offer(root);
int rootmax = 0;
while(!queue.isEmpty()){
int size = queue.size();
rootmax = Integer.MIN_VALUE;
for(int i = 0 ; i < size ; i++){
root = queue.poll();
rootmax = Math.max(rootmax,root.val);//取每一层的最大值
if(root.left!=null) queue.offer(root.left);
if(root.right!=null) queue.offer(root.right);
}
res.add(rootmax);//将每一层的最大值加入结果集
}
return res;
}
}