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 条评论