94. 二叉树的中序遍历(2021-05-12)

94. 二叉树的中序遍历

链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/

题目描述见链接内容。

解法1:递归

二叉树的遍历使用递归很直观,也不复杂:

var inorderTraversal = function(root) {
    const result = [];
    if (root) {
        result.push(...inorderTraversal(root.left));
        result.push(root.val);
        result.push(...inorderTraversal(root.right))
    }
    return result;
};
  • 时间复杂度: ${O(n)}$,其中n为二叉树节点的个数。二叉树的遍历中每个节点会被访问一次且只会被访问一次。
  • 空间复杂度:${O(n)}$,空间复杂度取决于递归的栈深度,而栈深度在二叉树为一条链的情况下会达到${O(n)}$的级别
  • 执行用时:68ms,在所有JavaScript提交中击败了100%的用户,内存消耗:38.9MB,在所有JavaScript提交中击败了5%的用户

解法2:递归优化

看了官方题解,在inorderTraversal内部声明

你可能感兴趣的:(LeetCode)