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:
- 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: 68 ms, faster than 96.16% of JavaScript online submissions for Binary Tree Inorder Traversal.
Memory Usage: 38.7 MB, less than 55.06% of JavaScript online submissions for Binary Tree Inorder Traversal.
/*** Definition for a binary tree node.* function TreeNode(val, left, right) {* this.val = (val===undefined ? 0 : val)* this.left = (left===undefined ? null : left)* this.right = (right===undefined ? null : right)* }*//*** @param {TreeNode} root* @return {number[]}*/var inorderTraversal = function(root) {let node = root;const stack = [];const result = [];while(node || stack.length > 0) {while(node) {stack.push(node);node = node.left;}if (stack.length > 0) {node = stack.pop();result.push(node.val);node = node.right;}}return result;};
