이진 트리 감안할 때, 그 노드의 값의 전순 주사를 반환합니다.
예:
입력 : [1, NULL, 2,3]
1
2
/
3
출력 : [1,2,3]
후속 : 재귀 해결책은 간단하다 당신이 반복적으로 그것을 할 수 있을까?
두 가지 방법으로 반복과 재귀가 있습니다
func preorderTraversal(root *TreeNode) []int {
if root == nil {
return []int{}
}
res := []int{}
preOrder(root, &res)
return res
}
func preOrder(root *TreeNode, ans *[]int) {
if root == nil {
return
}
*ans = append(*ans, root.Val)
preOrder(root.Left, ans)
preOrder(root.Right, ans)
}