leetcode 1161. Maximum Level Sum of a Binary Tree

insert image description here

The layer where the root is located is 1, followed by 1. Sum
each layer to find the maximum number of layers.

Ideas:

Summing up layer by layer, think of BFS.
Record the initial sum as root.val. If
the subsequent sum exceeds this value, update the sum and update the number of layers.

public int maxLevelSum(TreeNode root) {
    
    
    int level = 0;
    int maxLevel = 1;
    int sum = root.val;
    Queue<TreeNode> queue = new LinkedList<>();
    queue.offer(root);

    while(queue.size() > 0) {
    
    
        int size = queue.size();
        int tmp = 0;
        level ++;
        for(int i = 0; i < size; i++){
    
    
            TreeNode cur = queue.poll();
            tmp += cur.val;
            if(cur.left != null) queue.offer(cur.left);
            if(cur.right != null) queue.offer(cur.right);
        }
        
        if(tmp > sum) {
    
    
            sum = tmp;
            maxLevel = level;
        }
    }
    return maxLevel;
}

Guess you like

Origin blog.csdn.net/level_code/article/details/131221183