一、题目描述:
给你二叉树的根节点
root,返回它节点值的 中序 遍历。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
示例 1:
输入:root = [1,null,2,3] 输出:[1,3,2]
题目链接: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 月闯关活动」, 点击查看 活动详情