这里用了匿名函数没用全局变量以便同时可以跑多个用例
package main
import "fmt"
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
func inorderTraversal(root *TreeNode) (result []int) {
var in func(node *TreeNode)
in = func(node *TreeNode) {
if node == nil {
return
}
in(node.Left)
result = append(result, node.Val)
in(node.Right)
}
in(root)
return
}
func main() {
root := &TreeNode{Val: 1,
Left: &TreeNode{Val: 2,
Left: &TreeNode{Val: 4},
Right: &TreeNode{Val: 5}},
Right: &TreeNode{Val: 3,
Left: &TreeNode{Val: 6},
Right: &TreeNode{Val: 7}}}
fmt.Println(inorderTraversal(root))
node := &TreeNode{Val: 1,
Left: &TreeNode{Val: 2,
Left: &TreeNode{Val: 4},
Right: &TreeNode{Val: 5}},
Right: &TreeNode{Val: 3,
Left: &TreeNode{Val: 6},
Right: &TreeNode{Val: 7}}}
fmt.Println(inorderTraversal(node))
}