您需要在二叉树的每一行中找到最大的值。
示例:
输入: 1 / \ 3 2 / \ \ 5 3 9 输出: [1, 3, 9]
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
public class EveryRowMax {
public static void main(String[] args) {
TreeNode treeNode=new TreeNode(1);
TreeNode treeNode1=new TreeNode(7);
TreeNode treeNode2=new TreeNode(9);
treeNode.left=treeNode1;
treeNode.right=treeNode2;
List list=sum(treeNode);
System.out.println(list);
}
public static List sum(TreeNode treeNode){
Queue<TreeNode> queue=new LinkedList();
queue.add(treeNode);
List list=new ArrayList();
int max=0;
while (!queue.isEmpty()){
int size= queue.size();
for (int i = 0; i <size ; i++) {
TreeNode temp=queue.poll();
max=Math.max(temp.val,max);
if (temp.left!=null){
queue.add(temp.left);
}
if (temp.right!=null){
queue.add(temp.right);
}
}
list.add(max);
}
return list;
}
}