Problem:
Reverse a singly linked list.
题目就一行,翻转一个链表。所以题目也是比较简单,我用了递归的方法实现。
Code:(LeetCode运行6ms)
/**
* 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 *rehead = new ListNode(-1);
ListNode *tmp = rehead;
if (head != NULL) {
reverse(head, rehead);
}
return tmp -> next;
}
ListNode* reverse(ListNode *head, ListNode *rehead) {
if (head -> next != NULL) {
rehead = reverse(head -> next, rehead);
}
rehead -> next = new ListNode(head -> val);
rehead = rehead -> next;
return rehead;
}
};