[Leetcode] 143. Reorder List 解题报告
来源:互联网 发布:警惕网络陷阱 编辑:程序博客网 时间:2024/05/18 22:08
题目:
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)将链表分成长度相等的两部分part1和part2;2)将part2翻转一下;3)将part1和翻转后的part2进行顺次合并。我第一次做这道题目的时候没有想到用two pointers,所以线性扫描了好几遍,虽然时间复杂度仍然符合题目要求,但是代码显得冗长。用了two pointers的思路之后,代码就简练多了。
代码:
/** * 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 || !head->next) { return; } ListNode *slow = head, *fast = head; ListNode *p = head, *q = head; while (fast->next && fast->next->next) { slow = slow->next; fast = fast->next->next; } fast = slow->next; // separate the list slow->next = NULL; p = fast, q = fast->next, fast->next = NULL; while (q) { // reverse the second list ListNode *temp = q->next; q->next = p; p = q; q = temp; } q = head; while (p && q) { ListNode *temp1 = q->next, *temp2 = p->next; p->next = q->next; q->next = p; q = temp1, p = temp2; } }};
0 0
- [leetcode] 143. Reorder List 解题报告
- [Leetcode] 143. Reorder List 解题报告
- 【LeetCode】Reorder List 解题报告
- LeetCode 解题报告 Reorder List
- LeetCode—Reorder List 解题报告
- leetCode解题报告之Reorder List
- [LeetCode OJ] Reorder List 解题报告
- [LeetCode]143.Reorder List
- LeetCode 143. Reorder List
- [leetcode] 143.Reorder List
- leetcode 143. Reorder List
- 143. Reorder List LeetCode
- LeetCode 143. Reorder List
- LeetCode 143. Reorder List
- LeetCode 143. Reorder List
- LeetCode *** 143. Reorder List
- [Leetcode] 143. Reorder List
- leetcode.143. Reorder List
- [RK3288][Android6.0] 调试笔记 --- 移除uboot和kernel开机logo
- 动起来->nativescript + angular
- 威纶weinview EB8000软件
- 图像语义分割数据集
- activemq的几种基本通信方式总结
- [Leetcode] 143. Reorder List 解题报告
- 使用android studio开发系统级app的gradle配置
- Linux命令- systemctl
- scala安装
- Python学习之zip函数的用法
- STM32F4学习
- 获取某目录下的所有文件(包括子目录下文件)的数量(C#)
- Quake4裁剪关卡
- 2017.05.10回顾 numpy学习 其他python woe iv实现参考