博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetCodeReorderList链表合并
阅读量:5086 次
发布时间:2019-06-13

本文共 1491 字,大约阅读时间需要 4 分钟。

原题

Given a singly linked list L: L0?L1?…?Ln-1?Ln,

reorder it to: L0?Ln?L1?Ln-1?L2?Ln-2?…
You must do this in-place without altering the nodes' values.
For example,
Given {1,2,3,4}, reorder it to {1,4,2,3}.

分析

将链表结点按照第一个 倒数第一个 第二个 倒数第二个 的顺序重新排序

1 2 3 4重新排序后是 1 4 2 3

AC代码

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    //翻转链表    ListNode *reverse(ListNode *head){        if(!head) return;        ListNode * pre = NULL;        while(head){            ListNode * nex = head->next;            head->next = pre;            pre = head;            head = nex;        }        return pre;    }    void reorderList(ListNode* head) {        if(!head || !head->next) return head;        ListNode * fast = head;        ListNode * slow = head;        while(fast->next && fast->next->next){            fast = fast->next->next;            slow = slow->next;        }        fast = slow->next;        //截断        slow->next = NULL;        //翻转后半段        ListNode * p = reverse(fast);        //合并        ListNode * res = head;        ListNode * q = head->next;        while(p && q){            res->next = p;            p = p->next;            res = res->next;            res->next = q;            q = q->next;            res = res->next;        }        if(p) res->next = p;        if(q) res->next = q;    }};

转载于:https://www.cnblogs.com/lepeCoder/p/leetCodeReorderList.html

你可能感兴趣的文章
洛谷 P2089 烤鸡【DFS递归/10重枚举】
查看>>
15 FFT及其框图实现
查看>>
Linux基本操作
查看>>
osg ifc ifccolumn
查看>>
C++ STL partial_sort
查看>>
3.0.35 platform 设备资源和数据
查看>>
centos redis 安装过程,解决办法
查看>>
IOS小技巧整理
查看>>
WebDriverExtensionsByC#
查看>>
我眼中的技术地图
查看>>
lc 145. Binary Tree Postorder Traversal
查看>>
sublime 配置java运行环境
查看>>
在centos上开关tomcat
查看>>
重启rabbitmq服务
查看>>
正则表达式(进阶篇)
查看>>
无人值守安装linux系统
查看>>
【传道】中国首部淘宝卖家演讲公开课:农业本该如此
查看>>
jQuery应用 代码片段
查看>>
MVC+Servlet+mysql+jsp读取数据库信息
查看>>
黑马程序员——2 注释
查看>>