题目链接
    给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。

    示例1:
    QQ截图20220710150618.png

    1. 输入: root = [1,3,2,5,3,null,9]
    2. 输出: [1,3,9]

    示例2:

    输入: root = [1,2,3]
    输出: [1,3]
    

    提示:

    • 二叉树的节点个数的范围是 [0,104]
    • -231 <= Node.val <= 231 - 1
    /**
    * Definition for a binary tree node.
    * public class TreeNode {
    *     int val;
    *     TreeNode left;
    *     TreeNode right;
    *     TreeNode() {}
    *     TreeNode(int val) { this.val = val; }
    *     TreeNode(int val, TreeNode left, TreeNode right) {
    *         this.val = val;
    *         this.left = left;
    *         this.right = right;
    *     }
    * }
    */
    class Solution {
        public List<Integer> largestValues(TreeNode root) {
            List<Integer> result = new ArrayList<>();
    
            if (root == null) {
                return result;
            }
    
            Deque<TreeNode> deque = new LinkedList<>();
            deque.offer(root);
    
            while (!deque.isEmpty()) {
                List<Integer> temp = new ArrayList<>();
                int size = deque.size();
    
                int max = deque.peek().val;
                for (int i = 0; i < size; i++) {
                    TreeNode node = deque.poll();
                    if (node.val > max) {
                        max = node.val;
                    }
                    if (node.left != null) {
                        deque.add(node.left);
                    }
                    if (node.right != null) {
                        deque.add(node.right);
                    }
                }
                result.add(max);
            }
            return result;
        }
    }