题目:leetcode515. 在每个树行中找最大值
描述
给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。
思路
遍历每一层的时候,记录最大值,最后加入结果集。
代码
import java.util.ArrayList;
import java.util.Deque;
import java.util.LinkedList;
import java.util.List;
public class Solution {
public List<Integer> largestValues(TreeNode root)
{
if(root==null)
return new ArrayList<>();
List<Integer> result=new ArrayList<>();
Deque<TreeNode> deque=new LinkedList<>();
int length,max;
deque.offer(root);
while(!deque.isEmpty())
{
length=deque.size();
max=deque.peek().val;
while (length>0)
{
TreeNode node=deque.poll();
if(node.val>max)
max=node.val;
if(node.left!=null)
deque.offer(node.left);
if(node.right!=null)
deque.offer(node.right);
length--;
}
result.add(max);
}
return result;
}
}