lintcode翻转链表

来源:互联网 发布:linux查看文件命令 编辑:程序博客网 时间:2024/05/20 15:37

翻转链表 

翻转一个链表

样例

给出一个链表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% 数据通过测试.
还没解决的相关题目
    166. 链表倒数第n个节点174. 删除链表中倒数第n个节点96. 链表划分165. 合并两个排序链表112. 删除排序链表中的重复元素
太牛了,把AC的喜悦分享给你的朋友吧!