您的位置:首页 > 其它

lintcode翻转链表

2017-08-28 17:33 246 查看
翻转链表 


 描述
 笔记

 数据

 评测

翻转一个链表

您在真实的面试中是否遇到过这个题? 

Yes

样例

给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null

挑战 
标签 
相关题目 

分析:使用额外两指针方法,只用遍历一次链表即可,且额外控件也需要较少,下面上代码

class Solution {
public:
/*
* @param head: n
* @return: The new head of reversed linked list.
*/
public:
ListNode * reverse(ListNode * head) {
// write your code here
if(head==NULL)//不往下走节省时间
return NULL;
ListNode *pre=NULL;
ListNode *Next=NULL;
while(head)
{
Next=head->next;//将当前节点后的结点保存下来
head->next=pre;//连接之前已反转结点
pre=head;//把连接好的节点头部赋给pre
head=Next;//把保存的结点赋给head以便下一次反转
}
return pre;
}
};



Accepted

总耗时: 932 ms
100% 数据通过测试.
还没解决的相关题目
42
%166. 链表倒数第n个节点容易30
%174. 删除链表中倒数第n个节点容易31
%96. 链表划分容易39
%165. 合并两个排序链表容易39
%112. 删除排序链表中的重复元素容易

太牛了,把AC的喜悦分享给你的朋友吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  链表 反转