如何在单个for循环中反转单链表?这是在采访中提出的问题。
答案 0 :(得分:1)
在伪代码中,这看起来像:
// 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循环中,但很容易被重写。随着它,它使它更具可读性。