用golang刷leetcode 530题,出现一个问题。求大神们看看

cyxr001 · · 1411 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

题目地址:https://leetcode-cn.com/problems/minimum-absolute-difference-in-bst/comments/ 代码: ``` type TreeNode struct { Val int Left *TreeNode Right *TreeNode } func getMinimumDifference(root *TreeNode) int { if root == nil { return 0 } var pre *TreeNode minValue := int(^uint(0) >> 1) getMin(root,pre,&minValue) return minValue } func getMin(root,pre *TreeNode,minValue *int){ if root == nil { return } getMin(root.Left,pre,minValue) if pre != nil { if *minValue > root.Val - pre.Val { *minValue = root.Val - pre.Val } } pre = root getMin(root.Right,pre,minValue) } func main() { a1 := &TreeNode{5,nil,nil} a2 := &TreeNode{4,nil,nil} a3 := &TreeNode{7,nil,nil} a1.Left = a2 a1.Right = a3 fmt.Println(getMinimumDifference(a1)) } ``` 入口getMinimumDifference,当输入的树 位 547本应该输出1 ,但是输出2 如果我把pre和minValue 设置为全局的变量,他就输出对了,不知道是怎么回事? 调试的时候,当递归到左下角返还的时候 ,莫名给pre赋值了

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1411 次点击  
加入收藏 微博
4 回复  |  直到 2019-08-22 16:52:19
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传