题目1519:合并两个排序的链表
来源:互联网 发布:数据英文单词 编辑:程序博客网 时间:2024/05/16 18:07
#include <cstdlib>#include <cstdio>using namespace std; struct Node { int num; Node * next; }; Node * Merge(Node * pHead1, Node * pHead2){ if(pHead1 == NULL) return pHead2; else if(pHead2 == NULL) return pHead1; Node* pMergedHead = NULL; if(pHead1->num < pHead2->num) { pMergedHead = pHead1; pMergedHead->next = Merge(pHead1->next, pHead2); } else { pMergedHead = pHead2; pMergedHead->next = Merge(pHead1, pHead2->next); } return pMergedHead;} Node * Merge2(Node * h1,Node * h2){ Node * head=NULL; Node * tail=tail; Node * temp=NULL; h1=h1->next;h2=h2->next; while(h1&&h2) { temp=(Node *)malloc(sizeof(Node )); if(h1->num > h2->num) { temp->num = h1->num ; h1=h1->next; } else { temp->num = h2->num ; h2=h2->next; } temp->next=NULL; tail->next=temp; tail=tail->next; printf("%d ",temp->num); } if(h1) { tail->next=h1; } if(h2) { tail->next=h2; } return head->next;}//*/int main(){ int n,m,t; Node * head1=NULL; Node * head2=NULL; Node * tail1=head1;Node * tail2=head2; while(~scanf("%d %d",&n,&m) ) { if(n==0&&m==0) printf("NULL\n"); else{ Node * temp1=(Node *)malloc(sizeof(Node )); temp1->next=NULL; head1=temp1; tail1=head1; Node * temp2=(Node *)malloc(sizeof(Node )); temp2->next=NULL; head2=temp2; tail2=head2; while(n--) { scanf("%d",&t); temp1=(Node *)malloc(sizeof(Node )); temp1->next=NULL; temp1->num=t; tail1->next=temp1; tail1=tail1->next; } while(m--) { scanf("%d",&t); temp2=(Node *)malloc(sizeof(Node )); temp2->next=NULL; temp2->num=t; tail2->next=temp2; tail2=tail2->next; } /* head1=head1->next; while(head1) {printf("%d ",head1->num);head1=head1->next;} printf("\n"); head2=head2->next; while(head2) {printf("%d ",head2->num);head2=head2->next;} printf("zhelimeiyouwenti\n\n"); */ Node * result=Merge(head1->next,head2->next); while(result->next) { printf("%d ",result->num); result=result->next; } if(result) printf("%d\n",result->num); //*/ } } return 0;} /************************************************************** Problem: 1519 User: 萧然677 Language: C++ Result: Accepted Time:240 ms Memory:4188 kb****************************************************************/
自己写的函数一运行就崩溃了,还在调试当中。。。。那个Merge函数是参考的,用递归。。。。
0 0
- 题目1519:合并两个排序的链表
- 题目1519:合并两个排序的链表-九度
- 题目1519:合并两个排序的链表
- 九度 题目1519:合并两个排序的链表
- 题目1519:合并两个排序的链表
- 题目1519:合并两个排序的链表
- 题目1519:合并两个排序的链表
- 题目1519:合并两个排序的链表
- 题目1519:合并两个排序的链表
- 题目1519:合并两个排序的链表
- 题目1519:合并两个排序的链表
- 剑指Offer题目1519:合并两个排序的链表
- 题目17:合并两个排序的链表
- 算法题目---合并两个排序的链表
- 题目:合并两个排序链表
- 题目1519:合并两个排序的链表 九度 本地通过 参考别人的
- 剑指offer- 题目1519:合并两个排序的链表 (2014.1.3)
- 九度_题目1519:合并两个排序的链表
- xcode5.1,运行时出现(菊花)attaching to (projectName),挂起不动
- 数学资源大全
- Java 类的初始化过程
- 数据结构:二叉树
- 使用配置hadoop中常用的Linux(ubuntu)命令
- 题目1519:合并两个排序的链表
- Android开发性能优化大总结
- 利用Python进行数据分析--数据规整化:清理、转换、合并、重塑
- 基于神经网络的统计语言模型-----第一章 引言
- 书籍集锦——关于深度学习
- 【PS教程】钢笔(路径)终极教程
- 用光驱启动到远程连接安装
- 2014 node.js小结
- android开发环境配置