fork download
  1. class TreeNode:
  2. def __init__(self, val=0, left=None, right=None):
  3. self.val = val
  4. self.left = left
  5. self.right = right
  6.  
  7.  
  8. def get_max_tree_path_sum(root: TreeNode) -> int:
  9. max_answer = float("-inf")
  10.  
  11. def DFS(node: TreeNode) -> int:
  12. nonlocal max_answer
  13. if not node:
  14. return 0
  15.  
  16. left_sum = DFS(node.left)
  17. right_sum = DFS(node.right)
  18.  
  19. s = max(0, left_sum, right_sum)
  20.  
  21. current_sum = node.val + s
  22.  
  23. max_answer = max(max_answer, current_sum)
  24.  
  25. return current_sum
  26.  
  27. DFS(root)
  28. return max_answer
Success #stdin #stdout 0.09s 14092KB
stdin
Standard input is empty
stdout
Standard output is empty