题目:
给你二叉树的根节点 root ,返回它节点值的 前序 **遍历。
解法:
方法一:迭代模拟栈
func preorderTraversal(root *TreeNode) []int {
ans := make([]int, 0)
stack := []*TreeNode{}
node := root
for node != nil || len(stack) != 0 {
for node != nil {
ans = append(ans, node.Val)
stack = append(stack, node.Right)
node = node.Left
}
node = stack[len(stack) - 1]
stack = stack[:len(stack) - 1]
}
return ans
}