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
原文地址:http://blog.csdn.net/kangrydotnet/article/details/45502309