Maximum Difference Between Node and Ancestor LeetCode solution in Python
1class Solution:2def maxAncestorDiff(self, root: Optional[TreeNode]) -> int:3self.max_diff = float("-inf")45def dfs(node, prev_min, prev_max):6if not node:7return8dfs(node.left, min(prev_min, node.val), max(prev_max, node.val))9dfs(node.right, min(prev_min, node.val), max(prev_max, node.val))10self.max_diff = max(11abs(node.val - prev_min), abs(node.val - prev_max), self.max_diff12)1314dfs(root, root.val, root.val)15return self.max_diff