1026. 节点与其祖先之间的最大差值
给定二叉树的根节点 root,找出存在于 不同 节点 A 和 B 之间的最大值 V,其中 V = |A.val - B.val|,且 A 是 B 的祖先。
(如果 A 的任何子节点之一为 B,或者 A 的任何子节点是 B 的祖先,那么我们认为 A 是 B 的祖先)
链接
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
function maxAncestorDiff(root: TreeNode | null): number { if (root === null) return 0 function dfs(node: TreeNode | null, max: number, min: number) { if (node === null) return 0 if (node.val > max) max = node.val else if (node.val < min) min = node.val
if (node.left === null && node.right === null) { return max - min }
const l = dfs(node.left, max, min) const r = dfs(node.right, max, min)
return Math.max(l, r) }
const l = dfs(root.left, root.val, root.val) const r = dfs(root.right, root.val, root.val) return Math.max(l, r) };
|