[
graph
dfs
bfs
]
BinarySearch 0089 Longest Tree Sum Path From Root to Leaf
Problem statement
https://binarysearch.com/problems/Longest-Tree-Sum-Path-From-Root-to-Leaf/
Solution
The idea is to use dfs(node, val, dep), where node is current node we are in, val is sum of values from node to root and dep is the depth of node.
Complexity
It is O(n) for time and O(h) for space.
Code
class Solution:
def solve(self, root):
def dfs(node, val, dep):
if not node:
self.ans = max(self.ans, (dep, val))
return
dfs(node.left, val + node.val, dep + 1)
dfs(node.right, val + node.val, dep + 1)
self.ans = (0, 0)
dfs(root, 0, 0)
return self.ans[1]