Reorder List
来源:互联网 发布:神鬼传奇怪物数据 编辑:程序博客网 时间:2024/05/29 18:54
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}
.
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: void reorderList(ListNode *head) { if (head == NULL) { return; } ListNode *p = head; int len = 0; while (p) { len++; p = p->next; } int steps = (len-1)/2; p = head; while (steps) { p = p->next; steps--; } ListNode *q = p->next; p->next = NULL; ListNode *prev = NULL; while (q) { ListNode *r = q->next; q->next = prev; prev = q; q = r; } p = head; q = prev; while (q) { ListNode *firstTemp = p->next; ListNode *secondTemp = q->next; p->next = q; q->next = firstTemp; p = firstTemp; q = secondTemp; } }};
0 0
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- nginx下discuz x3的伪静态规则
- 线性表链式存储(双向循环链表)及其14种操作的实现
- python2.7.6安装web.py 0.37报编码错误
- [python学习] 简单爬取维基百科程序语言消息盒
- iOS 推送通知”详解:从创建到设置到运行
- Reorder List
- twemproxy简介
- iOS本地通知:UILocalNotification
- [python学习] 简单爬取图片网站图库中图片
- 【分析】config-portable文件
- HDOJ 月之数 2502
- 本地推送UILocalNotification
- [python知识] 爬虫知识之BeautifulSoup库安装及简单介绍
- 万能表单解析工具在xheditor上传文件中的应用