题目描述
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
譬如,给你链表 1->2->3,返回链表3->2->1。
解题思路
迭代法
【思路】
- 遍历链表的时候,要3个指针:过去,现在和未来。以此迭代。
- 每一次循环过程中,将现在指针的下一个指针指向前一个指针。
代码实现
C++语言的代码实现如下:
ListNode* reverseList(ListNode* head) {
ListNode* pre = nullptr;
ListNode* cur = head;
while (cur)
{
ListNode* nex = cur->next;
cur->next = pre;
pre = cur;
cur = nex;
}
return pre;
}