二叉树每层的最大值

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

    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;
    }
}

全部评论

相关推荐

09-01 10:50
已编辑
东华大学 C++
PDD校招_内推:拼多多意向和开奖一般都比较晚,可能10月11月才出意向
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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