问了贺老师几个问题感觉对递归有了新的理解,趁热打铁记下来
其实看递归的函数的话首先得从宏观的角度去看这个函数,就比如计算二叉树节点的个数的这个函数,宏观上看就是一个根节点的左孩子与右孩子节点个数的相加再最后加上自己,然后有了这个意识之后再从微观上具体看函数的递归,每次对这个函数的使用都是将每一个点看做一个根节点,然后算上孩子节点的个数加上自己,然后再逐一返回,返回到最后再加上真正的根节点就是函数正确的结果。所以说我觉得递归就是一个模板,套用上大的再套用上小的(具体的),用小的去逐一返回大的就是最终的结果。
跳进去再跳出来~~~
int Nodes(BTNode *b)
{
if (b==NULL)
return 0;
else
return Nodes(b->lchild)+Nodes(b->rchild)+1;
}