二叉树的前序遍历、后序遍历

67 阅读1分钟

二叉树的前序遍历、后序遍历

前序

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
}