Вопрос о рекурсии связанного списка C ++

У меня возникли проблемы с пониманием следующего блока кода:

void InsertSorted(Entry * & list, Entry * newOne) {
    if (list == NULL || newOne->name < list->name) {
        newOne->next = list;
        list = newOne;
    } else {
        InsertSorted(list->next, newOne);
    }
}

Я попытался отследить код, но мне удалось добраться до точка, где вы перейдете к первому оператору if. Когда я дохожу до того, что выполняю первый оператор if, я не понимаю, как предыдущие вызовы InsertSorted смогли подключить переднюю часть списка к вновь созданному списку.

Спасибо

0
задан user871303 2 August 2011 в 01:08
поделиться