二叉树文章系列:

二叉树的前序遍历的记忆法则是“根左右",即先遍历根节点,再遍历左子树节点,再遍历右子树节点。
以上图为例,前序遍历的结果是【A, B, D, E, C, F, G】
一、解题思路:递归
递归是我们实现前中后序遍历最常用的方法。
什么问题可以采用递归求解呢?
需要满足三个条件:
- 一个问题的解可以分解为若干个子问题的解;
- 这个问题与分解的子问题,除了数据规模不同外,求解思路相同
- 存在递归终止条件。
那么在知道一个问题可以采用递归实现之后,如何写出递归代码呢?
关键在于能写出递归公式,找到终止条件。
在二叉树的前序遍历问题上,它的递归公式是:
preorder(node) = print node —> preorder(node->left) --> preorder(node->right)
它的终止条件是:
node 是否为空,为空则返回。
class Solution {
public:
vector<int> preorderTraversal(TreeNode* root) {
vector<int> res;
preorder(res, root);
return res;
}
void preorder(

最低0.47元/天 解锁文章
1万+

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



