翻转一个链表
样例
样例 1:
输入: 1->2->3->null
输出: 3->2->1->null
样例 2:
输入: 1->2->3->4->null
输出: 4->3->2->1->null
挑战
在原地一次翻转完成
/**
* Definition of singly-linked-list:
*
* class ListNode {
* public:
* int val;
* ListNode *next;
* ListNode(int val) {
* this->val = val;
* this->next = NULL;
* }
* }
*/
class Solution {
public:
/**
* @param head: n
* @return: The new head of reversed linked list.
*/
ListNode * reverse(ListNode * head)
{
// write your code here
ListNode * next = NULL;
ListNode * ret = NULL;
if(head == NULL)
return ret;
while(head)
{
next = head->next;
head->next = ret;
ret = head;
head = next;
}
return ret;
}
};