1. 程式人生 > >LeetCode0515.在每個樹行中找最大值

LeetCode0515.在每個樹行中找最大值

0515.在每個樹行中找最大值

描述

您需要在二叉樹的每一行中找到最大的值。

例項

輸入: 

          1
         / \
        3   2
       / \   \  
      5   3   9 

輸出: [1, 3, 9]

題解

逐層遍歷,對每一層找到最大值

	public ArrayList<TreeNode> getNextLayNodes(ArrayList<TreeNode> layList1){
        ArrayList<TreeNode> layList2 =
new ArrayList<>(); for(TreeNode node:layList1){ if (node.left != null) layList2.add(node.left); if (node.right != null) layList2.add(node.right); } return layList2; } public List<Integer> largestValues
(TreeNode root) { List<Integer> result = new ArrayList<>(); if (root == null) return result; ArrayList<TreeNode> layList1; ArrayList<TreeNode> layList2; layList1 = new ArrayList<>(); layList1.add(root); while
(!layList1.isEmpty()){ layList2 = getNextLayNodes(layList1); int max = Integer.MIN_VALUE; for (TreeNode node:layList1) max = max > node.val ? max : node.val; result.add(max); layList1 = layList2; } return result; }