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

154 阅读1分钟

一、题目描述:

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

示例1

示例 1:

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

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

题目链接:144. 二叉树的前序遍历

二、思路分析:

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

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

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

三、AC 代码:

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

四、参考学习网址

二叉树

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