题目描述:

给定一个二叉树,返回它的中序 遍历。
示例:

  1. 输入: [1,null,2,3]
  2. 1
  3. \
  4. 2
  5. /
  6. 3
  7. 输出: [1,3,2]

代码实现:

  • 递归法,中序遍历是左节点,根节点,右节点的顺序遍历,按照这个思路即可。前序中序后序遍历指的是根节点遍历的位置。
  • 时间复杂度:O(n)
  1. /**
  2. * Definition for a binary tree node.
  3. * function TreeNode(val) {
  4. * this.val = val;
  5. * this.left = this.right = null;
  6. * }
  7. */
  8. /**
  9. * @param {TreeNode} root
  10. * @return {number[]}
  11. */
  12. var inorderTraversal = function(root) {
  13. var stack = []
  14. var res = (root, stack) => {
  15. if (root !== null) {
  16. res(root.left, stack)
  17. stack.push(root.val)
  18. res(root.right, stack)
  19. }
  20. }
  21. res(root, stack)
  22. return stack
  23. };

二叉树的中序遍历 - 图1