题目
- 二叉树的中序遍历
给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。
示例 1:
输入:root = [1,null,2,3]
输出:[1,3,2]
示例 2:
输入:root = []
输出:[]
示例 3:
输入:root = [1]
输出:[1]
思路(注意事项)
模板
纯代码
class Solution {
private:
vector<int> ans;
void inorder (TreeNode* root)
{
if (root == nullptr) return;
inorder(root -> left);
ans.push_back(root -> val);
inorder(root -> right);
}
public:
vector<int> inorderTraversal(TreeNode* root) {
inorder (root);
return ans;
}
};
题解(加注释)
class Solution {
private:
vector<int> ans; // 用于存储中序遍历结果的数组
// 中序遍历递归函数
void inorder(TreeNode* root) {
// 如果当前节点为空,直接返回
if (root == nullptr) return;
// 递归遍历左子树
inorder(root->left);
// 将当前节点的值加入结果数组
ans.push_back(root->val);
// 递归遍历右子树
inorder(root->right);
}
public:
vector<int> inorderTraversal(TreeNode* root) {
// 调用中序遍历函数
inorder(root);
// 返回中序遍历结果
return ans;
}
};