206. Reverse Linked List (翻转链表)
1. 题目翻译
将一个单链表翻转。
2. 解题方法
首先,将链表第二个结点与第一个结点交换位置,然后将1,2结点看成一个整体,并与第3个结点交换位置,以此类推,便可将单链表翻转。如图所示为每次交换之后,链表及指针的状态。
3. 代码
//Runtime: 9ms, 时间复杂度: O(n)
class Solution {
public:
ListNode* reverseList(ListNode* head) {
if (head == NULL)
return NULL;
ListNode *p = head;
ListNode *q = p->next;
while(q){
p->next = q->next;
q->next = head;
head = q;
q = p->next;
}
return head;
}
};
本文详细介绍了如何通过迭代方式实现单链表的翻转,包括具体的步骤和过程,并提供了完整的C++代码实现,时间复杂度为O(n)。
419

被折叠的 条评论
为什么被折叠?



