首页 > 其他 > 详细

515. 在每个树行中找最大值

时间:2021-06-17 21:32:51      阅读:41      评论:0      收藏:0      [点我收藏+]

您需要在二叉树的每一行中找到最大的值。

示例:

输入:

1
/ \
3 2
/ \ \
5 3 9

输出: [1, 3, 9]

解法一:宽度优先搜索

List<Integer> res = new ArrayList<>();

    public List<Integer> largestValues(TreeNode root) {
        Queue<TreeNode> queue = new LinkedList<>();
        if (root == null)
            return res;
        queue.add(root);
        while (!queue.isEmpty()) {
            int size = queue.size();
            int max = Integer.MIN_VALUE;
            while (size > 0) {
                TreeNode node = queue.poll();
                max = Math.max(max, node.val);
                if (node.left != null)
                    queue.add(node.left);
                if (node.right != null)
                    queue.add(node.right);
                size--;
            }
            res.add(max);
        }
        return res;
    }

 

时间复杂度:O(N)

空间复杂度:O(N)

515. 在每个树行中找最大值

原文:https://www.cnblogs.com/xiaoming521/p/14897178.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!