二叉树每层的最大值

思路还是二叉树的层序遍历,中间加上一个判断,找出当前层最大的就行。

    public List<Integer> largestValues(TreeNode root) {
            List<Integer> res = new ArrayList<>();
            if(root == null) return res;
            Queue<TreeNode> queue = new LinkedList<>();
            queue.offer(root);
            while(!queue.isEmpty()){
                int size = queue.size();
                int max = Integer.MIN_VALUE;
                while(size-- > 0){
                    TreeNode node = queue.poll();
                    if(node.val > max) max = node.val;//进行判断,将当前层最大的找出来
                    if(node.left != null) queue.offer(node.left);
                    if(node.right != null) queue.offer(node.right);
                }
                res.add(max);//将当前层最大的值,存进list中
            }
        return res;
    }
}

全部评论

相关推荐

被普调的六边形战士很高大:项目经历貌似和专业或者求职方向没大关系?
点赞 评论 收藏
分享
群星之怒:不是哥们,你就不好奇瘫痪三十年的老植物人是啥样的吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务