C实现 LeetCode->Merge k Sorted Lists (双指针大法)
来源:互联网 发布:按键精灵过去网页数据 编辑:程序博客网 时间:2024/05/16 11:31
Merge k Sorted Lists
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
把所有数据放到一个数组里面排序,然后再根据结果生成新的链表。
//// MergeKSortedLists.c// Algorithms//// Created by TTc on 15/6/18.// Copyright (c) 2015年 TTc. All rights reserved.///** * Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 把所有数据放到一个数组里面排序,然后再根据结果生成新的链表。 */#include "MergeKSortedLists.h"struct ListNode { int val; struct ListNode *next;};struct ListNode *mergeTwoLists(struct ListNode *l1, struct ListNode *l2) { if(l1==NULL&&l2==NULL) return NULL; if(l1==NULL) return l2; if(l2==NULL) return l1; struct ListNode *newNode; if(l1->val >= l2->val){ newNode = l2; newNode->next = mergeTwoLists(l1, l2->next); }else{ newNode=l1; newNode->next = mergeTwoLists(l1->next, l2); } return newNode;}/** * 双指针大法,创建两个 指针(首尾指针 向中间扫描) * */struct ListNode*mergeKLists(struct ListNode** lists, int listsSize) { int n = listsSize; while(n >= 2){ for(int i = 0;i < n/2; i++){ lists[i] = mergeTwoLists(lists[i],lists[n-i-1]); } if(n%2==0) n=n/2; else n=n/2+1; } return lists[0];}
0 0
- C实现 LeetCode->Merge k Sorted Lists (双指针大法)
- C实现 LeetCode->Merge Two Sorted Lists (双指针大法) (单链表排序)
- C实现 LeetCode->Merge Two Sorted Lists (双指针大法)
- C实现 LeetCode->Merge Two Sorted Lists (双指针大法)(单链表swap合并反转)
- 【LeetCode算法练习(C++)】Merge k Sorted Lists
- LeetCode(23)Merge k Sorted Lists
- LeetCode: Merge k Sorted Lists
- LeetCode Merge k Sorted Lists
- LeetCode: Merge k Sorted Lists
- [Leetcode] Merge k Sorted Lists
- [Leetcode] Merge k Sorted Lists
- [Leetcode] Merge K sorted lists
- [LeetCode]Merge k Sorted Lists
- [LeetCode] Merge k Sorted Lists
- LeetCode-Merge k Sorted Lists
- LeetCode: Merge k Sorted Lists
- LeetCode - Merge k Sorted Lists
- LeetCode | Merge k Sorted Lists
- 怎样查看linux版本
- 关于CSS自学时的一些总结
- 奖学金文章更新 连载5第五篇 陈元威 海南IOS第一期学员
- PE文件结构详解(五)延迟导入表
- Node.js学习--基础知识(7)--fs
- C实现 LeetCode->Merge k Sorted Lists (双指针大法)
- 多线程
- Openstack API管理之glance镜像服务
- PE文件结构详解(六)重定位
- ES、PES、PS以及TS码流
- svn 服务端是Linux(ubuntu),客户端是windows,安装指导
- 关于mysqli
- linux下修改系统时间
- AFTN和SITA报文简介