重複の可能性:
単一リンクリストを逆にする
単一のforループで単一リンクリストを逆にする方法は?これはインタビューで尋ねられた質問でした。
疑似コードでは、これは次のようになります。
// Cache the start element
current = first;
next = current->next;
while (next != null) {
// Cache the next pointer to not lose the reference
temp = next->next;
next->next = current;
// Increment
current = next;
next = temp;
}
first = current;
forループではないことは知っていますが、簡単に書き換えることができます。while を使用すると、もう少し読みやすくなります。