[LeetCode 94. 二叉树的中序遍历] |刷题打卡

104 阅读1分钟

一、题目描述:

给你二叉树的根节点 root ,返回它节点值的 中序 遍历。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

示例1

示例 1:

输入:root = [1,null,2,3]
输出:[1,3,2]

引自:leetcode-cn.com/problems/bi…

题目链接:94. 二叉树的中序遍历

二、思路分析:

二叉树的中序遍历按照左子树、根节点、右子树的顺序来访问。

考虑使用递归的方式来解决。

按照递归顺序性访问左子树、根节点、右子树。并且把相应值放到数组中。

三、AC 代码:

class Solution {
    var resultArr : [Int] = [Int]();
    func inorderTraversal(_ root: TreeNode?) -> [Int] {
        if (root == nil) {
            // 空树
            return [Int]();
        }
        inorderTraversal(root?.left);
        let tempValue : Int = root?.val ?? 0;
        resultArr.append(tempValue);
        inorderTraversal(root?.right);
        return resultArr;
    }
}

四、参考学习网址

二叉树

本文正在参与「掘金 3 月闯关活动」, 点击查看 活动详情