リンクされたリストを反転する問題の解決策である次の短いコードがあります。
void backwardslist(atom** head) {
atom* first;
atom* second;
if (*head == NULL) return; //if list is empty
first = *head;
second = first->next; // intuitive
if (second == NULL) return;
backwardslist(&second); // recursive call with 2nd one as head, after we got variables
first and second
first->next->next = first; // when we get to the end, we rearrange it
first->next = NULL; // so last one is pointing to first, first is pointing to NULL
*head = second; // I dont understand this part, so the head is changing from the last,
to the second element as the recursion goes to the beginning or am i
missing something?
}
second=(再帰の 2 つのポインターの 2 番目へのポインター) ではありませんか?
ですから、最初は最後のものを指す必要があります。
しかし、再帰が元に戻ると、常に変化する *head から second になります。
使用されている 2 番目の ATM には何が入っていますか?
君たちありがとう