mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 19:44:45 +08:00
增加 0530.二叉搜索树的最小绝对差 go版 (中序遍历的同时计算最小值,不用额外的存储空间)
中序遍历的同时计算最小值,不用额外的存储空间
This commit is contained in:
@ -255,6 +255,29 @@ func findMIn(root *TreeNode,res *[]int){
|
|||||||
findMIn(root.Right,res)
|
findMIn(root.Right,res)
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
```go
|
||||||
|
// 中序遍历的同时计算最小值
|
||||||
|
func getMinimumDifference(root *TreeNode) int {
|
||||||
|
// 保留前一个节点的指针
|
||||||
|
var prev *TreeNode
|
||||||
|
// 定义一个比较大的值
|
||||||
|
min := math.MaxInt64
|
||||||
|
var travel func(node *TreeNode)
|
||||||
|
travel = func(node *TreeNode) {
|
||||||
|
if node == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
travel(node.Left)
|
||||||
|
if prev != nil && node.Val - prev.Val < min {
|
||||||
|
min = node.Val - prev.Val
|
||||||
|
}
|
||||||
|
prev = node
|
||||||
|
travel(node.Right)
|
||||||
|
}
|
||||||
|
travel(root)
|
||||||
|
return min
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
JavaScript版本
|
JavaScript版本
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user