函数与递归:搜索单链表最后一个结点
问题描述:
LinkNode * FindRear(LinkNode *f){
if(f==NULL) return NULL;
else if(f–>link==NULL) return f;
else return FindRear(f->link);
}函数体中第二行代码是递归终止条件,第三行是调用自己简化问题。那么第一行代码if(f==NULL) return NULL;是干啥的?可以去掉吗?
答
异常处理,输入的参数就是Null的话就要立即返回,否则下一步null->next就会出错了
答
这是递归搜索,需要一个终止条件,如果搜索到最后,那么f=null,就停止搜索了。所有的递归都必须有一个终止条件。