1.3 KiB
1.3 KiB
layout, title, last_solved, category, leetcode_url, status
| layout | title | last_solved | category | leetcode_url | status |
|---|---|---|---|---|---|
| page | Deepest Leaves Sum (DFS) | 2020-07-17 | trees | https://leetcode.com/problems/deepest-leaves-sum/ | 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 %}