2012-04-12 7 views
1

この再帰コードの意味を理解していません。隣接する2つのノードの2つの値が同じかどうかをチェックしますか?この再帰コードの意味を理解できません

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); 
} 

ありがとうございました!

答えて

3

はい、あなたはあなた自身の質問に答えることで話していることを知っています!現在のノードを次のノードでチェックします。同じ場合はtrueを返し、それ以外の場合は再帰的に自身をreturn has_repeats(e->next);と呼びます。

私はそれがcontains_value(x, y)が実際に何を参照するのに役立つと思います。 @Benがコメントしたように、おそらくcontains_value(x,y)はおそらくリストのすべての値をチェックします。

+0

'contains_value()'は、次の値だけでなく、リスト内のすべての値をチェックすると思われます。この場合、関数は重複した重複だけでなく、名前を考慮して感覚的になります。 – Ben

+0

@Benは、あなたがコメントを書いたときに私の編集を書き留めます。あなたが正しいと確信しています... – JonH

関連する問題