94. Binary Tree Inorder Traversal

Easy
Given the root of a binary tree, return the inorder traversal of its nodes' values.
Example 1:
​
​
Input: root = [1,null,2,3]
Output:
[1,3,2]
Example 2:
Input: root = []
Output:
[]
Example 3:
Input: root = [1]
Output:
[1]
Constraints:
  • The number of nodes in the tree is in the range [0, 100].
  • -100 <= Node.val <= 100
Follow up: Recursive solution is trivial, could you do it iteratively?

解題

Runtime: 0 ms, faster than 100%
Memory Usage: 1.9 MB, less than 89.14%
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func inorderTraversal(root *TreeNode) []int {
res := make([]int, 0)
​
var helper func(*TreeNode)
helper = func(root *TreeNode) {
if root == nil { return }
​
helper(root.Left)
res = append(res, root.Val)
helper(root.Right)
}
​
helper(root)
​
return res
}