day14
递归三部曲:
1. 确认递归函数的返回值和参数
2.确认递归的退出条件(出口
3.单层递归的逻辑
在遍历二叉树中就是,
返回值:void,参数,根节点和数组
出口:当 cur 为空,表示遍历到头了,返回上一层。
单层的递归逻辑:
如果是前序遍历,中左右 把当前的放在最前面
中序遍历 把当前的放在中间
后序遍历 把当前的放在后面
这里就只贴一个代码
注意:
主函数只传根节点就行了
调用的时候别忘记传参数
class Solution {
public:
void travelsal(TreeNode* cur,vector<int>& vec)
{
if(cur == nullptr)
return;
vec.push_back(cur->val);
travelsal(cur->left,vec);
travelsal(cur->right,vec);
}
vector<int> preorderTraversal(TreeNode* root) {
vector<int> vec;
travelsal(root,vec);
return vec;
}
};