给你二叉树的根节点 root
,返回它节点值的 前序 遍历。
示例 1:
输入:root = [1,null,2,3]
输出:[1,2,3]
示例 2:
输入:root = []
输出:[]
示例 3:
输入:root = [1]
输出:[1]
示例 4:
输入:root = [1,2]
输出:[1,2]
示例 5:
输入:root = [1,null,2]
输出:[1,2]
首先我们要明白二叉树前序遍历是什么?
不明白就没法做了。(具体可以去bilibili去看视频了解一下)
什么是二叉树的前序遍历:
按照访问根节点——左子树——右子树的方式遍历这棵树,这就是前序遍历。
我们可以使用递归的方法来做这道题。
自定义preorder(root) 表示当前遍历到 root 节点的答案。
代码如下:
class Solution {
public:
void preorder(TreeNode *root, vector<int> &res) {
if (root == nullptr) {
return;
}
res.push_back(root->val);
preorder(root->left, res);
preorder(root->right, res);
}
vector<int> preorderTraversal(TreeNode *root) {
vector<int> res;
preorder(root, res);
return res;
}
};