【LeetCode】Reorder List
来源:互联网 发布:多益网络校招 编辑:程序博客网 时间:2024/06/05 18:38
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: ListNode* reverseList(ListNode *head){ ListNode *newhead=NULL; ListNode *tmp=head; ListNode *pPrev=NULL; while(tmp!=NULL){ ListNode *pNext=tmp->next; if(pNext==NULL)newhead=tmp; tmp->next=pPrev; pPrev=tmp; tmp=pNext; } return newhead; } void reorderList(ListNode *head) { //拆分链 if(head==NULL || head->next==NULL) return; ListNode* pslow = head; ListNode* pfast = head; while(pfast!=NULL) { if(pfast != NULL) pfast = pfast->next; if(pfast != NULL) pfast = pfast->next; if(pfast==NULL) break; pslow = pslow->next; } ListNode* head2 = pslow->next; pslow->next = NULL; //后半段倒序 head2 = reverseList(head2); //合并 ListNode* p1 = head; ListNode* p2 = head2; ListNode* tmp = NULL; while(p1!=NULL && p2 != NULL){ tmp = p1->next; p1->next = p2; p1 = tmp; tmp = p2->next; p2->next = p1; p2 = tmp; } } };
0 0
- [leetcode][list] Reorder List
- [leetcode][list] Reorder List
- Leetcode: Reorder List
- [LeetCode] Reorder List
- LeetCode题解:Reorder List
- Leetcode: Reorder List
- LeetCode:Reorder List
- leetcode之Reorder List
- Leetcode: Reorder List
- [LeetCode]Reorder List
- [LeetCode] Reorder List
- leetcode Reorder List
- LeetCode | Reorder List
- LeetCode Reorder List
- LeetCode 之 Reorder List
- Leetcode: Reorder List
- LeetCode OJ:Reorder List
- Reorder List (LeetCode)
- stm32 程序存储
- SDL2.0上手试用
- 使用Get方式传递中文参数的问题乱码问题
- 使用Jsoup爬虫解析html新闻的实例
- Linux 下的信号量
- 【LeetCode】Reorder List
- shell中$0,$?,$!等的特殊用法
- Java 将byte[] 与int类型互相转换
- boost库应用(一)
- java基础之问题:请说出hashCode方法、equals方法、HashSet、HashMap之间的关系
- Android:shape selector and layer-list
- 使用JS打开小窗口显示图片
- HTTP POST GET 本质区别详解
- Substrings HDU