问题描述
Given the root of a binary tree, return the inorder traversal of its nodes’ values.
Constraints:
- The number of nodes in the tree is in the range
[0, 100].
-100 <= Node.val <= 100
解答
方法一:递归
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
const inorderTraversal = function (root) { if (!root) { return [] }
return [...inorderTraversal(root.left), root.val, ...inorderTraversal(root.right)] }
const inorderTraversal1 = function (root) { let res = [] const visitLoop = (root) => { if (root) { visitLoop(root.left) res.push(root.val) visitLoop(root.right) } } visitLoop(root) return res }
|
方法二:迭代
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
const inorderTraversal2 = function (root) { let stack = [] let res = [] let cur = root
while (cur || stack.length) { if (cur) { stack.push(cur) cur = cur.left } else { cur = stack.pop() res.push(cur.val) cur = cur.right } } return res }
|