LeetCode-Algorithms-[Mid][A]1302. 层数最深叶子节点的和

  • 时间:
  • 来源:互联网
  • 文章标签:

给你一棵二叉树,请你返回层数最深的叶子节点的和。

示例:

在这里插入图片描述

输入:root = [1,2,3,4,5,null,6,7,null,null,null,null,8]
输出:15

提示:

树中节点数目在 1 到 10^4 之间。
每个节点的值在 1 到 100 之间。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/deepest-leaves-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


public class No1302 {
    private int sum;
    private int maxDepth;

    public int deepestLeavesSum(TreeNode root) {
        initial();
        dfs(root, 0);
        return sum;
    }

    private void dfs(TreeNode root, int h) {
        if (root == null) {
            return;
        }
        if (root.left == null && root.right == null) {
            if (h > maxDepth) {
                maxDepth = h;
                sum = root.val;
            } else if (h == maxDepth) {
                sum += root.val;
            }
            return;
        }
        dfs(root.left, h + 1);
        dfs(root.right, h + 1);
    }

    private void initial() {
        this.sum = 0;
        this.maxDepth = 0;
    }
}

本文链接http://www.taodudu.cc/news/show-82910.html