二叉树的前序遍历、后序遍历
前序
func preorderTraversal(root *TreeNode) []int {
if root == nil {
return []int{}
}
var slice []int
slice = append(slice, root.Val)
leftSlice := preorderTraversal(root.Left)
rightSlice := preorderTraversal(root.Right)
slice = append(slice, leftSlice...)
slice = append(slice, rightSlice...)
return slice
}
后序
func postorderTraversal(root *TreeNode) []int {
if root == nil {
return []int{}
}
var slice []int
leftSlice := postorderTraversal(root.Left)
rightSlice := postorderTraversal(root.Right)
slice = append(slice, leftSlice...)
slice = append(slice, rightSlice...)
slice = append(slice, root.Val)
return slice
}