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

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

示例:

输入:

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)

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