From 190bf67e4055f1b612bcd21f19b0acea046ad03a Mon Sep 17 00:00:00 2001 From: terminaldweller Date: Fri, 17 Feb 2023 19:09:05 +0330 Subject: 783 --- 783/go.mod | 3 +++ 783/main.go | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 783/go.mod create mode 100644 783/main.go diff --git a/783/go.mod b/783/go.mod new file mode 100644 index 0000000..14313dc --- /dev/null +++ b/783/go.mod @@ -0,0 +1,3 @@ +module 783 + +go 1.19 diff --git a/783/main.go b/783/main.go new file mode 100644 index 0000000..089c86e --- /dev/null +++ b/783/main.go @@ -0,0 +1,47 @@ +package main + +import ( + "fmt" + "math" +) + +type TreeNode struct { + Val int + Left *TreeNode + Right *TreeNode +} + +func min(a, b int) int { + if a > b { + return b + } + return a +} + +func walk(node *TreeNode, vals *[]int) { + if node == nil { + return + } + + walk(node.Left, vals) + *vals = append(*vals, node.Val) + walk(node.Right, vals) +} + +func minDiffInBST(root *TreeNode) int { + var vals []int + + walk(root, &vals) + + minDist := math.MaxInt32 + + for i := 1; i < len(vals); i++ { + minDist = min(minDist, vals[i]-vals[i-1]) + } + + return minDist +} + +func main() { + fmt.Println("vim-go") +} -- cgit v1.2.3