赞
踩
输入一个长度为n链表,反转链表后,输出新链表的表头。
如当输入链表{1,2,3}时,经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。以上转换过程如下图所示:
用三个指针来分别表示上一节点,当前节点和下一节点,让当前节点指向上一节点,当前节点和下一节点之间断开,上一节点移动到当前节点,当前节点移动到下一节点,直到当前节点指向NULL的时候停止,返回上一节点就可以了。
/* 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 *cur = pHead; while(cur){ ListNode *tmp = cur->next; cur->next = pre; pre = cur; cur = tmp; } return pre; } };
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。