From 1f8417b538ea0aaa23585de4a3acecdfc944acf3 Mon Sep 17 00:00:00 2001 From: guowenfeng <841784596@qq.com> Date: Fri, 23 Jul 2021 11:11:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=AD=E5=BA=8F=E9=81=8D=E5=8E=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main.go" | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 "\347\262\276\351\200\211/04.06.\345\220\216\347\273\247\350\200\205/main.go" diff --git "a/\347\262\276\351\200\211/04.06.\345\220\216\347\273\247\350\200\205/main.go" "b/\347\262\276\351\200\211/04.06.\345\220\216\347\273\247\350\200\205/main.go" new file mode 100644 index 0000000..c0186e1 --- /dev/null +++ "b/\347\262\276\351\200\211/04.06.\345\220\216\347\273\247\350\200\205/main.go" @@ -0,0 +1,34 @@ +package main + +type TreeNode struct { + Val int + Left *TreeNode + Right *TreeNode +} + +var resArr = make([]*TreeNode, 0) + +func inorderSuccessor(root *TreeNode, p *TreeNode) *TreeNode { + if root == nil { + return nil + } + + midOrder(root) + + for index := range resArr { + if resArr[index] == p && index < len(resArr) - 1 { + return resArr[index + 1] + } + } + return nil +} + +func midOrder(root *TreeNode) { + if root == nil { + return + } + + midOrder(root.Left) + resArr = append(resArr, root) + midOrder(root.Right) +}