Go 二叉树递归遍历输出(前序、中序、后序)
- 前序遍历:根结点 —> 左子树 —> 右子树
- 中序遍历:左子树—> 根结点 —> 右子树
- 后序遍历:左子树 —> 右子树 —> 根结点
树结构体
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
前序(深度优先遍历)
func kthLargest(root *TreeNode) {
scan(root)
}
func scan(node *TreeNode) {
if node == nil {
return
}
fmt.Println(node.Val)
scan(node.Left)
scan(node.Right)
}
中序
func kthLargest(root *TreeNode) {
scan(root)
}
func scan(node *TreeNode) {
if node == nil {
return
}
scan(node.Left)
fmt.Println(node.Val)
scan(node.Right)
}
后序
func kthLargest(root *TreeNode) {
scan(root)
}
func scan(node *TreeNode) {
if node == nil {
return
}
scan(node.Left)
scan(node.Right)
fmt.Println(node.Val)
}