博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试题19:合并两个排序的链表(offer)
阅读量:4216 次
发布时间:2019-05-26

本文共 1156 字,大约阅读时间需要 3 分钟。

题目:

输入两个递增排序的链表,合并这两个链表并使新链表仍然是按照递增排序的。

边界条件:

两个空链表,一个空链表。两个链表只有一个结点。存在值相等的多个链表。

注意资源的回收。

思路:

用递归来做。

时间复杂度:O(min(n1,n2))

#include 
#include
#include
#include
#include
using namespace std;struct ListNode{ int value; ListNode *next; ListNode(int a){ value = a; next = NULL; }};ListNode *MergeList(ListNode *head1,ListNode *head2){ if (head1 == NULL) return head2; if (head2 == NULL) return head1; ListNode *newHead = NULL; if (head1->value <= head2->value) { newHead = head1; newHead->next = MergeList(head1->next, head2); } else { newHead = head2; newHead->next = MergeList(head1, head2->next); } return newHead;}int main(){ ListNode *a1 = new ListNode(1); ListNode *a2 = new ListNode(3); ListNode *a3 = new ListNode(5); ListNode *a4 = new ListNode(7); ListNode *a5 = new ListNode(9); a1->next = a2; a2->next = a3; a3->next = a4; a4->next = a5; ListNode *b1 = new ListNode(2); ListNode *b2 = new ListNode(4); ListNode *b3 = new ListNode(6); b1->next = b2; b2->next = b3; ListNode *re = MergeList(a1,b1); for (; re != NULL; re = re->next) cout << re->value << " "; cout << endl; return 0;}

转载地址:http://tapmi.baihongyu.com/

你可能感兴趣的文章
驴妈妈管理的一点经验总结
查看>>
IOS开发学习的好资料大搜藏
查看>>
SSH的认证终结(无需密码的git操作或者ssh链接无需密码)
查看>>
Jetty 的工作原理以及与 Tomcat 的比较
查看>>
ssh-keygen的使用方法 注意权限问题
查看>>
zookeeper的server的集群配置实例[张振华-Jack]
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第一篇:互联网时代U盘化生存方式 【张振华.Jack】
查看>>
CentOS6.4配置Hadoop-2.6.0集群配置安装指南(经过实战演练)【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第二篇:专注的力量 [张振华.Jack]
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第三篇:我的舍与得的2014[张振华.Jack]
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第五篇:不要给自己找任何借口【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第七篇:请留意我们身边的风景 【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第八篇:坚持的力量 【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第九篇:春节那些事-过年回家不需要理由【张振华.Jack】
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第十一篇:马云乌镇40分钟演讲实录【张振华.Jack】
查看>>
Java并发编程从入门到精通 张振华.Jack --我的书
查看>>
【屌丝程序的口才逆袭演讲稿50篇】第十二篇:世界上最快的捷径【张振华.Jack】
查看>>
Android中Java代码和XML布局效率问题
查看>>
android TextView属性大全(转)
查看>>
Conclusion for Resource Management
查看>>