我已经写了一个函数来计算两个排序链表的交集(以递归的方式),但是我需要删除if语句中的那些“return”,并重新调整代码。有什么建议吗?提前感谢
t_nodo *intersezione_insieme(t_nodo *insieme_A, t_nodo* insieme_B)
{
t_nodo *tmp;
if (insieme_A == NULL || insieme_B == NULL) {
tmp = NULL;
}
else if (insieme_A->info < insieme_B->info) {
return intersezione_insieme(insieme_A->succ, insieme_B);
}
else if (insieme_A->info > insieme_B->info) {
return intersezione_insieme(insieme_A, insieme_B->succ);
}
else
{
tmp = (t_nodo*)malloc(sizeof(t_nodo));
tmp->info = insieme_A->info;
tmp->succ = intersezione_insieme(insieme_A->succ, insieme_B->succ);
}
return tmp;
}
1条答案
按热度按时间svmlkihl1#
就像在注解中概述的那样,在函数中有多个返回值并不一定是不好的形式。这完全取决于上下文。例如,一个长函数可能会在执行函数代码之前检查一些“立即返回”条件。
但是我可以看到,在你的函数中使用一个return语句可以增加可读性。
以下是我卑微的建议: