Leetcode 1302.层数最深叶子节点的和
1 题目描述(Leetcode题目链接)
给你一棵二叉树,请你返回层数最深的叶子节点的和。
输入:root = [1,2,3,4,5,null,6,7,null,null,null,null,8]
输出:15
提示:
- 树中节点数目在 1 到 1 0 4 10^4 104 之间。
- 每个节点的值在 1 到 100 100 100 之间。
2 题解
深度优先搜索,记录每个深度的累加值,等价于递归实现层次遍历。
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def deepestLeavesSum(self, root: TreeNode) -> int:
if not root:
return 0
res = []
def dfs(root, depth):
if root:
if len(res) <= depth:
res.append(0)
res[depth] += root.val
dfs(root.left, depth + 1)
dfs(root.right, depth + 1)
dfs(root, 0)
return res[-1]