0094.二叉树的中序遍历

方法一:迭代法

时间复杂度 O(n)O(n),空间复杂度 O(n)O(n)

/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ func inorderTraversal(root *TreeNode) []int { ans, stack := []int{}, []*TreeNode{} for len(stack) > 0 || root != nil { for root != nil { stack, root = append(stack, root), root.Left } top := stack[len(stack)-1] stack, ans, root = stack[:len(stack)-1], append(ans, top.Val), top.Right } return ans }