05
05/2015
[LeetCode] Reverse Linked List
Reverse Linked List
Reverse a singly linked list.
解题思路:
链表翻转。没有什么很大的难度,画个图分析一下即可。单链表的技巧就是申请一个伪头结点,然后在最后的时候删除即可,这样能够保证中间代码不需要考虑不同的情况。
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode* resultHead=new ListNode(0);
ListNode* p=head, *q;
while(p!=NULL){
q=p->next;
p->next=resultHead->next;
resultHead->next=p;
p=q;
}
p=resultHead;
resultHead=resultHead->next;
delete p;
return resultHead;
}
};转载请注明:康瑞部落 » [LeetCode] Reverse Linked List

0 条评论