这里用了匿名函数没用全局变量以便同时可以跑多个用例
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))
}
本文介绍了一种使用Go语言实现的二叉树中序遍历算法,通过定义二叉树节点结构并采用递归的方式进行遍历,最终输出二叉树的所有节点值。
441

被折叠的 条评论
为什么被折叠?



