144.二叉树的前序遍历

60 阅读1分钟

题目:
给你二叉树的根节点 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
}