输入:一棵二叉树的根节点 root
要求:
返回它的 前序遍历,即:
根节点 → 左子树 → 右子树
输出:vector<int>
思路:
前序遍历顺序非常固定:
-
访问当前节点(root)
-
遍历左子树(root->left)
-
遍历右子树(root->right)
使用递归方式实现,代码简洁清晰,是最标准的前序模板。
复杂度:
时间复杂度:O(n)
空间复杂度:O(n)
class Solution {
public:
void order(TreeNode* root, vector<int>& ans) {
if (!root) {
return;
}
ans.push_back(root->val);
order(root->left, ans);
order(root->right, ans);
return;
}
vector<int> preorderTraversal(TreeNode* root) {
vector<int> ans;
order(root, ans);
return ans;
}
};
1094

被折叠的 条评论
为什么被折叠?



