Maximum Level Sum of a Binary Tree
给一个二叉树, 求最大的sum的一层node. 层序扫描
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public int maxLevelSum(TreeNode root) { Queue<TreeNode> q = new LinkedList<>(); q.add(root); int max = Integer.MIN_VALUE; int maxIndex = -1; int lvl = 1; while(!q.isEmpty()) { int size = q.size(); int local = 0; for(int i = 0; i < size; i++) { TreeNode node = q.poll(); if(node.left != null) q.add(node.left); if(node.right != null) q.add(node.right); local += node.val; } if(local > max){ max = local; maxIndex = lvl; } lvl++; } return maxIndex; } } |