leetcode_gym/_problems/deepestLeavesSumDFS.md
2026-08-25 19:14:07 -06:00

80 lines
1.3 KiB
Markdown

---
layout: page
title: Deepest Leaves Sum (DFS)
last_solved: 2020-07-17
category: trees
leetcode_url: https://leetcode.com/problems/deepest-leaves-sum/
status: Solved
---
```
Given a binary tree, return the sum of values of its deepest leaves.
```
{% highlight python %}
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def deepestLeavesSum(root):
map = {}
def dfs(root, depth):
map[depth] = root.val + map.get(depth, 0)
if root.left:
dfs(root.left, depth+1)
if root.right:
dfs(root.right, depth+1)
dfs(root, 0)
return map[max(map)]
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)
print deepestLeavesSum(root)
{% endhighlight %}
_______________
{% highlight python %}
def deepestLeavesSum(self, root: TreeNode) -> int:
lookup = defaultdict(int)
def dfs(node, level):
if not node:
return
lookup[level] = lookup[level]+node.val
dfs(node.left, level+1)
dfs(node.right, level+1)
dfs(root, 0)
print(lookup)
return lookup[max(lookup)]
{% endhighlight %}
![image1]()