题目
给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。
提示:
二叉树的节点个数的范围是 [0,10^4]
-2^31 < = Node.val < = 2^31 - 1
思路
就进行层次遍历,每次将当前行的最大值置为Integer.MIN_VALUE,将当前行的数值与max进行比较,得出最终的结果,然后存放到列表中即可!
代码
class Solution {
public List<Integer> largestValues(TreeNode root) {
List<Integer> ans = new LinkedList<>();
// 根节点不为空、
if(root==null)
return ans;
// 开始进行层次遍历
Deque <TreeNode> deque = new LinkedList<>();
deque.add(root);
while(!deque.isEmpty())
{
int size=deque.size();
int max=Integer.MIN_VALUE;
for(int i=0;i<size;++i)
{
TreeNode temp = deque.poll();
max=max>temp.val?max:temp.val;
if(temp.left!=null)
deque.add(temp.left);
if(temp.right!=null)
deque.add(temp.right);
}
ans.add(max);
}
return ans;
}
}