Leetcode 1092 Solution
This article provides solution to leetcode question 1092 (maximum-difference-between-node-and-ancestor)
Access this page by simply typing in "lcs 1092" in your browser address bar if you have bunnylol configured.
Leetcode Question Link
https://leetcode.com/problems/maximum-difference-between-node-and-ancestor
Solution
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def maxAncestorDiff(self, root: TreeNode) -> int:
self.ans = 0
def dfs(node):
local_min = node.val
local_max = node.val
if node.left:
left_min, left_max = dfs(node.left)
local_min = min(local_min, left_min)
local_max = max(local_max, left_max)
if node.right:
right_min, right_max = dfs(node.right)
local_min = min(local_min, right_min)
local_max = max(local_max, right_max)
self.ans = max(
self.ans,
int(abs(local_min - node.val)),
int(abs(local_max - node.val)),
)
return local_min, local_max
dfs(root)
return self.ans