题目
给你一棵二叉树,请你返回层数最深的叶子节点的和。
链接:https://leetcode.com/problems/deepest-leaves-sum/
Given a binary tree, return the sum of values of its deepest leaves.
Example:
Input: root = [1,2,3,4,5,null,6,7,null,null,null,null,8]
Output: 15
思路及代码
DFS
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def deepestLeavesSum(self, root: TreeNode) -> int:
def dfs(node, d):
if not node:
return
if d > max_d[0]:
max_d[0] = d
sum[0] = 0
if d == max_d[0]:
sum[0] += node.val
dfs(node.left, d+1)
dfs(node.right, d+1)
sum = [0]
max_d = [0]
dfs(root, 0)
return sum[0]
复杂度
T =
O
(
n
)
O(n)
O(n)
S =
O
(
n
)
O(n)
O(n)