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?
import com_github_leetcode.TreeNode
/*
* Example:
* var ti = TreeNode(5)
* var v = ti.`val`
* Definition for a binary tree node.
* class TreeNode(var `val`: Int) {
* var left: TreeNode? = null
* var right: TreeNode? = null
* }
*/
class Solution {
fun inorderTraversal(root: TreeNode?): List<Int> {
if (root == null) {
return emptyList()
}
val answer: MutableList<Int> = ArrayList()
inorderTraversal(root, answer)
return answer
}
private fun inorderTraversal(root: TreeNode?, answer: MutableList<Int>) {
if (root == null) {
return
}
if (root.left != null) {
inorderTraversal(root.left, answer)
}
answer.add(root.`val`)
if (root.right != null) {
inorderTraversal(root.right, answer)
}
}
}