-
找整个递归的终止条件:递归应该在什么时候结束?
-
找返回值:应该给上一级返回什么信息?
-
本级递归应该做什么:在这一级递归中,应该完成什么任务?
解决递归问题的思维误区是执着于考虑整个递归函数的执行流程,应该先考虑递归过程中的一个子问题的处理方式,由该子问题的处理方式来写递归函数。尤其是考虑二叉树的递归问题时,不要想象递归函数执行时整个树的结构,而只考虑包含单个节点、左节点、右结点这三个结点的处理方式,根据这三个结点的情况对应上面的解决方法来写出整个递归函数的流程。
解决递归问题的思维误区是执着于考虑整个递归函数的执行流程,应该先考虑递归过程中的一个子问题的处理方式,由该子问题的处理方式来写递归函数。尤其是考虑二叉树的递归问题时,不要想象递归函数执行时整个树的结构,而只考虑包含单个节点、左节点、右结点这三个结点的处理方式,根据这三个结点的情况对应上面的解决方法来写出整个递归函数的流程。