接着上个文章,再来一道leetcode的每日一题,题目链接:515. 在每个树行中找最大值
题目如下:
给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。
这道题使用的是二叉树的层序遍历的套路,代码如下:
public static List<Integer> largestValues(TreeNode root) {
List<Integer> maxList = new ArrayList<>();
if(root == null){
return maxList;
}
LinkedList<TreeNode> list = new LinkedList<>();
list.addFirst(root);
while(!list.isEmpty()){
int size = list.size();
//这里简单留意一下
int max = Integer.MIN_VALUE;
for (int i = 0; i < size; i++) {
TreeNode treeNode = list.removeFirst();
if(treeNode.left != null){
list.addLast(treeNode.left );
}
if(treeNode.right != null){
list.addLast(treeNode.right);
}
int val = treeNode.val;
max = max > val ? max : val;
}
maxList.add(max);
}
return maxList;
}