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

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

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

示例:

输入:

      1
     / \
    3   2
   / \   \  
  5   3   9 

输出: [1, 3, 9]
代码:

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public List<Integer> largestValues(TreeNode root) {
        List<Integer> res = new ArrayList<Integer>();
        preorder(root, res, 0);
        return res;
    }

    private void preorder(TreeNode root, List<Integer> res, int d) {
        if (root == null) {
            return;
        }
        if (d == res.size()) {
            res.add(root.val);
        } else {
            res.set(d, Math.max(res.get(d), root.val));
        }
        preorder(root.left, res, d + 1);
        preorder(root.right, res, d + 1);
    }
}

猜你喜欢

转载自blog.csdn.net/Andy_96/article/details/81988314