一.相关链接
题目链接:
144. 二叉树的前序遍历
145.二叉树的后序遍历
94.二叉树的中序遍历
二.心得体会
这道题目是二叉树题目的基础,递归有三要素:1.确定参数和返回值;2.确定终止条件;3.确定单层递归的逻辑。
对于这道题目:
1.参数当然是树的节点。这里还可以传入数组,但用全局定义的数组的话就可以不传入。
2.终止条件就是遇到了空节点。
3.单层递归的逻辑是按顺序遍历左右节点和中间节点。
三.代码
class Solution {
public:
vector<int> ans;
void traversal(TreeNode* node) {
if(node==NULL) return;
ans.push_back(node->val);
traversal(node->left);
traversal(node->right);
}
vector<int> preorderTraversal(TreeNode* root) {
traversal(root);
return ans;
}
};
class Solution {
public:
void traversal(TreeNode*node, vector<int> &ans) {
if(node==NULL) return;
traversal(node->left, ans);
traversal(node->right, ans);
ans.push_back(node->val);
}
vector<int> postorderTraversal(TreeNode* root) {
vector<int> ans;
traversal(root, ans);
return ans;
}
};