leetcode笔记—Reorder List
来源:互联网 发布:火影忍者网络连接错误 编辑:程序博客网 时间:2024/06/15 07:32
给一个链表 L: L0→L1→…→Ln-1→Ln,
需要返回: L0→Ln→L1→Ln-1→L2→Ln-2→…
思路1:
void reorderList(ListNode* head) { ListNode* p=head; while(p&&p->next) { ListNode* pnext=p->next; //记下下一个节点 ListNode* temp=p; if(p->next->next==NULL) { p=p->next; } else { while(temp->next&&temp->next->next) { temp=temp->next; }//让temp指向倒数第二个节点 p->next=temp->next; //指向最后一个节点 temp->next=NULL; //删除最后一个节点 p=p->next; //连接后面的节点 p->next=pnext; p=p->next; } } if(p) { p->next=NULL; }}思路2:
if(head == NULL){ return; } ListNode* p1 = head; ListNode* p2 = splitList(head); p2 = revertList(p2); mergeList(p1, p2); } void mergeList(ListNode * p1, ListNode * p2){ //合并链表 while(p2 != NULL){ ListNode* tmp = p2; p2 = p2->next; tmp->next = p1->next; p1->next = tmp; p1 = p1->next; p1 = p1->next; }; } ListNode* splitList(ListNode *head){ //去后半部分链表 ListNode* slow = new ListNode(0); slow->next = head; ListNode* fast = slow; while(fast->next != NULL && fast->next->next != NULL){ slow = slow->next; fast = fast->next; fast = fast->next; } if(fast->next != NULL){ slow = slow->next; fast = fast->next; } ListNode* tmp = slow->next; slow->next = NULL; return tmp; } ListNode* revertList(ListNode* head){ //翻转链表 if(head == NULL){ return NULL; } ListNode* p = head->next; head->next = NULL; while(p != NULL){ ListNode* tmp = p; p = p->next; tmp->next = head; head = tmp; } return head; }
0 0
- leetcode笔记—Reorder List
- leetcode笔记:Reorder List
- leetcode笔记--Reorder List
- LeetCode—Reorder List
- LeetCode——Reorder List
- [leetcode][list] Reorder List
- [leetcode][list] Reorder List
- leetcode 143 —— 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
- java 字节输入输出流
- Activity动态添加Fragment
- html5 record 修改采样率导致声音无法播放解决方案
- Dynamics CRM2016 Update or Create parentcustomerid in Contact using web api
- [leetcode] 164. Maximum Gap 解题报告
- leetcode笔记—Reorder List
- ElasticSearch之初识
- 【MySql性能优化一】性能测试环境配置和慢查询日志的使用
- HDU 3072 Intelligence System (强连通+(贪心||树形图))
- Activity 启动模式
- MinGW安装和使用
- 【Lua】windows下安装和使用LuaJIT步骤
- Java Web中的EL(表达式语言)详解
- Excel 集計機能