主要思路
迭代:既然是翻转链表,我们只需将原来每一个结点指向下一个结点改为每一个结点指向前一个结点,最后返回尾结点即可。例如将链表 1 -> 2 -> 3 -> ∅,改为 ∅ <- 1 <- 2 <- 3。
class Solution {
public:
ListNode *reverseList(ListNode *head) {//改变每一个结点的指向,由原来指向下一个结点改为指向前一个结点
ListNode *fake = nullptr;
ListNode *cur = head;
while(cur) {
ListNode *tmp = cur->next;
cur->next = fake;
fake = cur;
cur = tmp;
}
//fake最终指向了尾结点
return fake;
}
};