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 <= 100
Follow up: Recursive solution is trivial, could you do it iteratively?
%% Definition for a binary tree node.
%%
%% -record(tree_node, {val = 0 :: integer(),
%% left = null :: 'null' | #tree_node{},
%% right = null :: 'null' | #tree_node{}}).
-spec inorder_traversal(Root :: #tree_node{} | null) -> [integer()].
inorder_traversal(null) -> [];
inorder_traversal(R = #tree_node{val = V, left = null, right = null}) -> [V];
inorder_traversal(Root) ->
inorder_traversal(Root#tree_node.left) ++ [Root#tree_node.val] ++ inorder_traversal(Root#tree_node.right).