94. 二叉树的中序遍历 - 中等

94. 二叉树的中序遍历
二叉树中序遍历顺序为 左 根 右
当根节点的左子树为空时添加该根节点,即在 root.left = nil, 后 add root.val
递归解法
- 时间复杂度 O(n)
其中 n 为二叉树节点的个数。二叉树的遍历中每个节点会被访问一次且只会被访问一次。 - 空间复杂度 O(n)
空间复杂度取决于递归的栈深度,而栈深度在二叉树为一条链的情况下会达到 O(n) 的级别。
1 | func inorderTraversal(_ root: TreeNode?) -> [Int] { |
迭代解法
- 时间复杂度 O(n)
其中 n 为二叉树节点的个数。二叉树的遍历中每个节点会被访问一次且只会被访问一次。 - 空间复杂度 O(n)
空间复杂度取决于栈深度,而栈深度在二叉树为一条链的情况下会达到 O(n) 的级别。
1 | func inorderTraversal(_ root: TreeNode?) -> [Int] { |
- Post title:94. 二叉树的中序遍历 - 中等
- Post author:xxxixxxx
- Create time:2021-02-23 11:05:00
- Post link:https://xxxixxx.github.io/2021/02/23/2000-008-94. 二叉树的中序遍历/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
Comments