代码:
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* ReverseList(ListNode* pHead) { ListNode * pre = NULL; ListNode * next = NULL; while(pHead!=NULL) { next = pHead->next;//将下一个节点保存起来 pHead->next = pre;//向反向指 pre = pHead;//当前的头结点变成了前一个节点 继续走下去 pHead=next;//下一个节点变成了当前头结点 } return pre;//如果head为null的时候,pre就为最后一个节点了,但是链表已经反转完毕,pre就是反转后链表的第一个节点 } };