144.二叉树的前序遍历
题目链接
题目描述
将二叉树按照前序遍历输出
代码思路
本来之前对于二叉树是很恐惧的,总感觉不会二叉树的代码写作,但是这次看了代码随想录对二叉树的前、中、后序遍历觉得也不是很难了。
同时,这里面比较重要的就是遍历的思路,以前一直不是很明白遍历是怎么弄,这次里面提供了明确的三步走:1、明确输入参数和返回值,2、判断循环终止的条件,3、确定单层循环逻辑
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
* };
*/
class Solution {
public:
void travelsal(TreeNode* root, vector<int>& var){
if(root==NULL) return;
var.push_back(root->val);
travelsal(root->left,var);
travelsal(root->right,var);
}
vector<int> preorderTraversal(TreeNode* root) {
vector<int> result;
travelsal(root,result);
return result;
}
};
前序、中序、后序基本是一样的,就是循环过程中顺序不一样,故而就写了前序遍历。
同时,这段时间有点荒废,这里有点没时间了,这一天的就补这个遍历,到后面有时间再把没做完的题目补上。