150。3 - sort List- AC
来源:互联网 发布:微盘软件开发 编辑:程序博客网 时间:2024/06/04 23:24
终于 ac 一道题···
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:ListNode * findMid(ListNode *phead){if (phead->next->next == NULL || phead->next == NULL || phead == NULL){return phead;}ListNode * pslow = phead;ListNode * pquick = phead;while (pquick->next && pquick->next->next)// the last second is not visited; after this process the "pquick" point to the last second;{pslow = pslow->next;pquick = pquick->next->next;}return pslow;}ListNode *Merge(ListNode *ph1, ListNode *ph2){if (ph1 == NULL) return ph2;if (ph2 == NULL) return ph1;ListNode *p1 = ph1;ListNode *p2 = ph2;ListNode *pnew = 0;if (p1->val > p2->val){pnew = p2;p2 = p2->next;}else{pnew = p1;p1 = p1->next;}ListNode *pres = pnew;while (p1 && p2){if (p1->val < p2->val){pnew->next = p1;p1 = p1->next;}else{pnew->next = p2;p2 = p2->next;}pnew = pnew->next;}p1 == NULL ? (pnew->next = p2) : (pnew->next = p1);return pres;}ListNode * sortList(ListNode *head){if (head == NULL || head->next == NULL) return head;ListNode *mid = findMid(head);ListNode *head2 = mid->next;mid->next = NULL; ListNode *ph1 = sortList(head);ListNode *ph2 = sortList(head2);return Merge(ph1, ph2);//Merge(sortList(head), sortList(head2));}};
0 0
- 150。3 - sort List- AC
- list - insertion sort - AC
- leetcode sort list (已经AC)
- leetcode——Insertion Sort List 对链表进行插入排序(AC)
- list sort
- list sort
- Sort List
- Sort List
- list - sort
- Sort List
- Sort List
- Sort List
- Sort List
- Sort List
- Sort List
- Sort List
- Sort List
- Sort List
- 在UBUNTU 13.10 搭建PYTHON开发环境
- Javascript获取IFrame内容(兼容IE&FF)
- oracle11g远程登录设置方法
- 字符串操作-串的存储结构、赋值、串长、子串、匹配...
- 【ftp】725本电子书下载
- 150。3 - sort List- AC
- hdu1698 Just a Hook
- 经停、联程
- JAVA多线程和并发基础面试问答
- SDK,jdk与jre的区别
- Rachel_Zhang机器学习十篇网络博文链接
- 菜刀连接postgresql数据库
- Android 手机麦克风PCM 格式 到 ULAW的转换
- 批量删除