LeetCode: Add to List 148. Sort List
来源:互联网 发布:js 滑块控件 编辑:程序博客网 时间:2024/06/06 03:28
#include <stdio.h>
#include <stdlib.h>
struct ListNode {
int val;
struct ListNode *next;
};
struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2)
{
struct ListNode *head;
struct ListNode *cur1;
struct ListNode *cur2;
struct ListNode *pre;
struct ListNode *next;
if(l1 == NULL || l2 == NULL)
return l1 == NULL ? l2 : l1;
head = l1->val < l2->val ? l1 : l2;
cur1 = head == l1 ? l1 : l2;
cur2 = head == l1 ? l2 : l1;
while(cur1 != NULL && cur2 != NULL){
if(cur1->val <= cur2->val){
pre = cur1;
cur1 = cur1->next;
}else{
next = cur2->next;
pre->next = cur2;
cur2->next = cur1;
pre = cur2;
cur2 = next;
}
}
pre->next = cur1 == NULL ? cur2 : cur1;
return head;
}
struct ListNode *mergeSort(struct ListNode* head)
{
struct ListNode *head1;
struct ListNode *head2;
struct ListNode *walker;
struct ListNode *runner;
if(head == NULL || head->next == NULL){
return head;
}
head1 = walker = runner = head;
while(runner->next != NULL && runner->next->next != NULL){
walker = walker->next;
runner = runner->next->next;
}
head2 = walker->next;
walker->next = NULL;
head1 = mergeSort(head1);
head2 = mergeSort(head2);
return(mergeTwoLists(head1, head2));
}
struct ListNode* sortList(struct ListNode* head)
{
return(mergeSort(head));
}
int main()
{
struct ListNode head;
struct ListNode p, *result;
head.val = 2;
p.val = 1;
head.next = &p;
p.next = NULL;
result = sortList(&head);
}
#include <stdlib.h>
struct ListNode {
int val;
struct ListNode *next;
};
struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2)
{
struct ListNode *head;
struct ListNode *cur1;
struct ListNode *cur2;
struct ListNode *pre;
struct ListNode *next;
if(l1 == NULL || l2 == NULL)
return l1 == NULL ? l2 : l1;
head = l1->val < l2->val ? l1 : l2;
cur1 = head == l1 ? l1 : l2;
cur2 = head == l1 ? l2 : l1;
while(cur1 != NULL && cur2 != NULL){
if(cur1->val <= cur2->val){
pre = cur1;
cur1 = cur1->next;
}else{
next = cur2->next;
pre->next = cur2;
cur2->next = cur1;
pre = cur2;
cur2 = next;
}
}
pre->next = cur1 == NULL ? cur2 : cur1;
return head;
}
struct ListNode *mergeSort(struct ListNode* head)
{
struct ListNode *head1;
struct ListNode *head2;
struct ListNode *walker;
struct ListNode *runner;
if(head == NULL || head->next == NULL){
return head;
}
head1 = walker = runner = head;
while(runner->next != NULL && runner->next->next != NULL){
walker = walker->next;
runner = runner->next->next;
}
head2 = walker->next;
walker->next = NULL;
head1 = mergeSort(head1);
head2 = mergeSort(head2);
return(mergeTwoLists(head1, head2));
}
struct ListNode* sortList(struct ListNode* head)
{
return(mergeSort(head));
}
int main()
{
struct ListNode head;
struct ListNode p, *result;
head.val = 2;
p.val = 1;
head.next = &p;
p.next = NULL;
result = sortList(&head);
}
阅读全文
0 0
- LeetCode: Add to List 148. Sort List
- leetcode148~Sort List Add to List
- Add to List 147. Insertion Sort List
- 148. Sort List leetcode list
- LeetCode 143 Reorder List Add to List
- LeetCode 148. Sort List
- [LeetCode]148.Sort List
- [leetcode] 148.Sort List
- 148. Sort List LeetCode
- Leetcode 148. Sort List
- LeetCode *** 148. Sort List
- LeetCode 148. Sort List
- leetcode.148. Sort List
- LeetCode-148.Sort List
- [Leetcode] 148. Sort List
- 148. Sort List --- leetcode
- LeetCode - 148. Sort List
- leetcode 148. Sort List
- USING ES7 ASYNC/AWAIT TODAY WITH BABEL
- luogu P1078 文化之旅
- mysql相关问答-中篇
- hdu 6184 Counting Stars(求无向图的三元环数量)
- 安装SaKai中的问题
- LeetCode: Add to List 148. Sort List
- Xcode 高级调试技巧
- js图片库二次改进(动态创建HTML元素)
- TLD算法详解(一)前言
- 暑期学习
- java打印调用堆栈的方式
- 物理内存与虚拟内存解析
- echart图表控件配置入门(常用图表数据动态绑定)
- Spring文档