Reorder List 重排字符串
来源:互联网 发布:詹姆斯09年对魔术数据 编辑:程序博客网 时间:2024/06/06 14:58
题目:
链接
解法1:
先求出字符串长度,然后依次把后面的字符串插入到前面中。
超时。
代码:
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 *temp = head->next;ListNode *last = head;int n = 0;while (temp){++n;temp = temp->next;}ListNode *now = head;while (n > 1){int i = n;temp = now;while (i){last = temp;temp = temp->next;--i;}last->next = NULL;temp->next = now->next;now->next = temp;now = temp->next;n -= 2;}}};
解法2:
先将字符串分为等两段。
逆序后一段。
合并两段。
代码:
class Solution {public:void reorderList(ListNode *head) {if (head == NULL)return ;int len = 0;ListNode *temp = head;while (temp){++len;temp = temp->next;}int half = len - len / 2;temp = head;while (half != 1){--half;temp = temp->next;}ListNode *head2 = temp->next;temp->next = NULL;if (head2 == NULL)return;ListNode *cur = head2->next;head2->next = NULL;ListNode *post = head2;while (cur){temp = cur->next;cur->next = post;post = cur;cur = temp;}head2 = post;cur = head;while (head2){temp = head2->next;head2->next = cur->next;cur->next = head2;cur = head2->next;head2 = temp;}}};
0 0
- Reorder List 重排字符串
- Reorder List 重排链表
- Reorder List 链表重排
- [LeetCode] 重排链表 reorder linked list
- [Lintcode]Reorder List 重排链表
- 【LeeCode】Reorder List 重排链表
- 99.Reorder List-重排链表(中等题)
- LeetCode-143. Reorder List (JAVA)重排链表
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- ufldl学习笔记与编程作业:Multi
- hd 2123 An easy problem
- jQuery.Autocomplete实现自动完成功能(详解)
- python线程池实现网络爬虫
- NSRange的使用方法
- Reorder List 重排字符串
- 开源框架android-async-http使用
- 为什么Java永远比C++慢?
- os基础--多线程进程面试题02
- Converting Character Sets
- php中内置的mysql数据库连接驱动mysqlnd简介及mysqlnd的配置安装方式
- Node.js系列--模块
- 编程珠玑第八章第十题
- 字符串-07. 说反话-加强版 (20)