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]
Example 4:

Input: root = [1,2]
Output: [2,1]
Example 5:

Input: root = [1,null,2]
Output: [1,2]
Constraints:
[0, 100].-100 <= Node.val <= 100Follow up: Recursive solution is trivial, could you do it iteratively?
type TreeNode struct {
	Val   int
	Left  *TreeNode
	Right *TreeNode
}
/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func inorderTraversal(root *TreeNode) []int {
	result := []int{}
	var travel func(*TreeNode)
	travel = func(node *TreeNode) {
		if node != nil {
			if node.Left != nil {
				travel(node.Left)
			}
			result = append(result, node.Val)
			if node.Right != nil {
				travel(node.Right)
			}
		}
	}
	travel(root)
	return result
}