递归总结
递归题目,就是在函数体内重复调用函数。所以一定要先想好思路,递归的出口、满足各种条件该进行的操作。
以二叉树的前序遍历为例:
首先确定递归的出口,当前节点为空的时候返回,和当访问完成的时候返回。
其他的条件,按照前序遍历的顺序递归访问该节点的左儿子和右儿子。
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; } };