1

我不明白这个递归代码的含义。它是否检查连续两个节点中的任何两个值是否相同?

bool has_repeats(element_t *e) 
{
    if (e == NULL) 
       return false;
    if (contains_value(e->next, e->val)) 
       return true;
    return has_repeats(e->next);
}

提前感谢您的帮助!

4

1 回答 1

3

是的,您通过回答自己的问题知道您在说什么!用下一个节点检查当前节点。如果它们相同,则返回true,否则递归回调自身return has_repeats(e->next);

我想这将有助于我们了解contains_value(x, y)实际情况。正如@Ben 评论的那样,更有contains_value(x,y)可能检查列表中的所有值。

于 2012-04-12T19:16:14.247 回答