515. Find Largest Value in Each Tree Row(Java)

来源:互联网 发布:盘古数据骗局 编辑:程序博客网 时间:2024/06/04 19:58

You need to find the largest value in each row of a binary tree.

Example:

Input:           1         / \        3   2       / \   \        5   3   9 Output: [1, 3, 9]
/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */// DFSpublic class Solution {    public List<Integer> largestValues(TreeNode root) {        List<Integer> res = new ArrayList<Integer>();        helper(root, res, 0);        return res;    }    private void helper(TreeNode root, List<Integer> res, int level) {        if (root == null) return;        if (level == res.size())             res.add(root.val);        else res.set(level, Math.max(res.get(level), root.val));        helper(root.left, res, level + 1);        helper(root.right, res, level + 1);    }}