From 011b0cc6fdd8058b738984066f075b37eb8245fc Mon Sep 17 00:00:00 2001 From: NevS <1173325467@qq.com> Date: Tue, 29 Jun 2021 21:55:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=200530.=E4=BA=8C=E5=8F=89?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E6=A0=91=E7=9A=84=E6=9C=80=E5=B0=8F=E7=BB=9D?= =?UTF-8?q?=E5=AF=B9=E5=B7=AE=20go=E7=89=88=20=EF=BC=88=E4=B8=AD=E5=BA=8F?= =?UTF-8?q?=E9=81=8D=E5=8E=86=E7=9A=84=E5=90=8C=E6=97=B6=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E6=9C=80=E5=B0=8F=E5=80=BC=EF=BC=8C=E4=B8=8D=E7=94=A8=E9=A2=9D?= =?UTF-8?q?=E5=A4=96=E7=9A=84=E5=AD=98=E5=82=A8=E7=A9=BA=E9=97=B4=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 中序遍历的同时计算最小值,不用额外的存储空间 --- .../0530.二叉搜索树的最小绝对差.md | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/problems/0530.二叉搜索树的最小绝对差.md b/problems/0530.二叉搜索树的最小绝对差.md index 8fa756bc..47b2b434 100644 --- a/problems/0530.二叉搜索树的最小绝对差.md +++ b/problems/0530.二叉搜索树的最小绝对差.md @@ -255,6 +255,29 @@ func findMIn(root *TreeNode,res *[]int){ 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版本