递归总结

递归题目,就是在函数体内重复调用函数。所以一定要先想好思路,递归的出口、满足各种条件该进行的操作。

以二叉树的前序遍历为例:

  首先确定递归的出口,当前节点为空的时候返回,和当访问完成的时候返回。

  其他的条件,按照前序遍历的顺序递归访问该节点的左儿子和右儿子。

class Solution { 
public: 
    /* 
     * @param root: A Tree 
     * @return: Preorder in ArrayList which contains node values. 
     */
    vector<int> l; 
    vector<int> preorderTraversal(TreeNode * root) { 
if(root==NULL) return l; l.push_back(root->val); preorderTraversal(root->left); preorderTraversal(root->right); return l; } };

 

posted @ 2017-09-14 16:13  会飞的雅蠛蝶  阅读(128)  评论(0编辑  收藏  举报