您的位置:首页 > 其它

[LeetCode] 206. Reverse Linked List

2017-12-10 10:13 393 查看

206. Reverse Linked List (翻转链表)

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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: