1026. 节点与其祖先之间的最大差值

节点与其祖先之间的最大差值

解法一: 深度优先遍历

go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func maxAncestorDiff(root *TreeNode) int {
var dfs func(node *TreeNode, minVal, maxVal int) int
dfs = func(node *TreeNode, minVal, maxVal int) int {
if node == nil {
return maxVal - minVal
}
minVal = min(minVal, node.Val)
maxVal = max(maxVal, node.Val)
return max(dfs(node.Left, minVal, maxVal), dfs(node.Right, minVal, maxVal))
}
return dfs(root, root.Val, root.Val)
}
作者

wuhunyu

发布于

2024-04-05

更新于

2025-01-15

许可协议