题解 | #重量级的一层#

重量级的一层

https://www.nowcoder.com/practice/193372871b09426ab9ea805f0fd44d5c

知识点:二叉树,层序遍历

基本的层序遍历操作:使用队列保存每一层的节点,每次遍历一层的节点,保存所有元素的和,统计该层元素和是否为最大,若为最大,则更新答案,并保存当前层的元素和。遍历完最后一层,得到的最大元素和层即为答案。

Java题解如下:

import java.util.*;

/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 *   public TreeNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param root TreeNode类 
     * @return int整型
     */
    public int maxLevelSum (TreeNode root) {
        // write code here
        int ans = 0;
        int weight = 0;
        Deque<TreeNode> queue = new ArrayDeque<>();
        queue.offer(root);
        int count = 0;
        while(!queue.isEmpty()) {
            count++;
            int size = queue.size();
            int sum = 0;
            for(int i = 0; i < size; i++) {
                TreeNode poll = queue.poll();
                sum += poll.val;
                if(poll.left != null) queue.offer(poll.left);
                if(poll.right != null) queue.offer(poll.right);
            }
            System.out.println(count + "  " + sum);
            if(sum >= weight) {
                ans = count;
                weight = sum;
            }
        }
        return ans;
    }
}

全部评论

相关推荐

Jcwemz:找实习千万别学性能和ui(入门找工作也不用学太多),老老实实把项目需求分析提测试点,跟进测试流程,提bug,填bug表单,出现bug怎么处理,这几个入门的玩意搞明白,实习就有人要你了
0经验如何找实习?
点赞 评论 收藏
分享
优秀的大熊猫在okr...:多益:此贼,必有同谋,按律,该当连坐!
你不能接受的企业文化有哪...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务