给定一棵二叉树的根节点 root
,请找出该二叉树中每一层的最大值。
public List<Integer> largestValues(TreeNode root) {
List<Integer> result=new ArrayList();
//借助队列
Queue<TreeNode> queue=new LinkedList();
if(root!=null){
queue.add(root);
}
while (!queue.isEmpty()){
int size=queue.size(); //记录每层个数
int max=Integer.MIN_VALUE; //记录每一层的最大值
for(int i=0;i<size;i++){
TreeNode node=queue.poll();
max=Math.max(max,node.val);
if(node.left!=null){
queue.add(node.left);
}
if(node.right!=null){
queue.add(node.right);
}
}
result.add(max);
}
return result;
}