Find Largest Value in Each Tree Row-LeetCode#515

515. Find Largest Value in Each Tree Row

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]

思路:题目意思为找到二叉树在每一层的最大值。递归把每个节点的值按层数区分传入List中
代码如下:

public class FindLargestValueinEachTreeRow {
    public List<Integer> largestValues(TreeNode root) {
        List<Integer> res = new ArrayList<>();
        dfs(root, res, 0);
        return res;
    }
    public static void dfs(TreeNode node, List<Integer> res, int deepth) {
        if (node == null) return;
        if (deepth == res.size()) {
            res.add(node.val);
        } else {
            res.set(deepth, Math.max(res.get(deepth), node.val));
        }
        dfs(node.left, res, deepth + 1);
        dfs(node.right, res, deepth + 1);
    }
}
文章已创建 108

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部