leetcode515_在每個樹行中找最大值
阿新 • • 發佈:2018-12-10
您需要在二叉樹的每一行中找到最大的值。
示例:
輸入:
1
/ \
3 2
/ \ \
5 3 9
輸出: [1, 3, 9]
思路:
層序遍歷的思想 在同一層找最大的
List<Integer> res = new ArrayList<Integer>(); if (root==null) { return res; } Queue<TreeNode> queue = new LinkedList<TreeNode>(); queue.add(root); while(queue.size() != 0){ int size = queue.size(); //每層的數目量 int max = Integer.MIN_VALUE; //用於儲存每層的最大值 for(int i = 0; i < size; i++){ TreeNode cur = queue.poll(); max=Math.max(cur.val, max); if(cur.left!= null)queue.add(cur.left); if(cur.right!=null)queue.add(cur.right); } res.add(max); } return res;