Lintcode 翻转链表
翻转一个链表
样例
给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null
分析:
/** * Definition of ListNode * * class ListNode { * public: * int val; * ListNode *next; * * ListNode(int val) { * this->val = val; * this->next = NULL; * } * } */ class Solution { public: /** * @param head: The first node of linked list. * @return: The new head of reversed linked list. */ ListNode *reverse(ListNode *head) { // write your code here if(head == NULL) return 0; ListNode *p = head; ListNode *P1 = NULL; ListNode *P2 = NULL; while(p != NULL) { P1 = p->next; p->next = P2; P2 = p; p = P1; } return P2; } };