37 lines
552 B
Go
37 lines
552 B
Go
package q530
|
|
|
|
import "math"
|
|
|
|
type TreeNode struct {
|
|
Val int
|
|
Left *TreeNode
|
|
Right *TreeNode
|
|
}
|
|
|
|
func getMinimumDifference(root *TreeNode) int {
|
|
minDiff := math.MaxInt
|
|
var last *int
|
|
|
|
var check = func(num int) {
|
|
if last == nil {
|
|
last = &num
|
|
return
|
|
}
|
|
minDiff = min(minDiff, num-*last)
|
|
*last = num
|
|
}
|
|
var traverse func(node *TreeNode)
|
|
traverse = func(node *TreeNode) {
|
|
if node == nil {
|
|
return
|
|
}
|
|
traverse(node.Left)
|
|
check(node.Val)
|
|
traverse(node.Right)
|
|
}
|
|
traverse(root)
|
|
|
|
return minDiff
|
|
}
|
|
|
|
var _ = getMinimumDifference
|