Binary Tree Maximum Path Sum
Problem page:https://leetcode.com/problems/binary-tree-maximum-path-sum
Solution
class Solution:
def _max(self, root):
if not root: return -sys.maxsize
l = max(0, self._max(root.left))
r = max(0, self._max(root.right))
self.res = max(self.res, root.val + l + r)
return root.val + max(l, r)
def maxPathSum(self, root):
self.res = -sys.maxsize
self._max(root)
return self.res
Complexity
- time: O(n)
- space: O(h)