func inorderTraversal(root *TreeNode) []int {
if root == nil {
return nil
}
var ans []int
ans = append(ans, inorderTraversal(root.Left)...)
ans = append(ans, root.Val)
ans = append(ans, inorderTraversal(root.Right)...)
return ans
}
func inorderTraversal(root *TreeNode) []int {
var st []*TreeNode
var ans []int
for root != nil || len(st) > 0 {
for root != nil {
st = append(st, root)
root = root.Left
}
root = st[len(st)-1]
st = st[:len(st)-1]
ans = append(ans, root.Val)
root = root.Right
}
return ans
}