笔试题四:带头节点head两个链表合并,并且有序
来源:互联网 发布:js div的显示与隐藏 编辑:程序博客网 时间:2024/05/21 04:01
将2个分别有序的链表合并成一个链表,并且合并后的链表依然有序。
方法:初始化一个头结点head,然后比较list1,和list2链表的第一个节点,选择比较小的连接到head上去,如此往复。
#include "stdafx.h"#include<iostream>#include<queue>using namespace std;typedef struct node{ int data; struct node *next;}Node,*List;List createList(int N,int multi){List head = (List)malloc(sizeof(Node));head->data = 0;head->next=NULL;int count = 0;List p = head;while(count<N){count++;List s = (List)malloc(sizeof(Node));s->data = count*multi;s->next = NULL;p->next = s;p = s;}return head;}void traverse(List head){if(head == NULL){return;}List p = head->next;while(p){cout<<p->data<<" ";p = p->next;}cout<<endl;}List unionList(List list1,List list2){if(list1 == NULL||list1->next==NULL)return list2;if(list2 == NULL||list1->next==NULL)return list1;list1 = list1->next;list2 = list2->next;List head = (List)malloc(sizeof(Node));List p = NULL;if(list1!=NULL && list2!=NULL)//初始化第一个节点{if(list1->data<=list2->data){head->next = list1;list1 = list1->next;}else{head->next = list2;list2 = list2->next;}}p = head->next;while(list1!=NULL && list2!=NULL)//主体部分{if(list1->data<=list2->data){p->next = list1;list1 = list1->next;p = p->next;}else{p->next = list2;list2 = list2->next;p = p->next;}}while(list1 != NULL)//如果list2已经完了,list1还有剩余{p->next = list1;list1 = list1->next;p = p->next;}while(list2 != NULL)//如果list1已经完了,list2还有剩余{p->next = list2;list2 = list2->next;p = p->next;}return head;}int main(){int N = 10;List head1 = createList(N,1);List head2 = createList(N,2);traverse(head1);traverse(head2);List head = unionList(head1,head2);traverse(head); getchar(); return 0;}
- 笔试题四:带头节点head两个链表合并,并且有序
- 笔试题三:带头节点head链表逆序
- 笔试题 合并两个有序链表
- C语言合并两个带头节点升序排列链表
- 将两个带头节点链表单链表,合并成一个新的带头节点链表……
- 带头节点的循环链表及两个循环链表的合并
- 将两个有序链表合并成一个有序链表——搜狐畅游笔试题归来
- 将两个有序链表合并成一个有序链表——搜狐畅游笔试题归来
- 有序的合并两个有序链表
- 两个有序链表合并为有序
- 合并两个有序链表
- 合并两个有序链表
- 合并两个有序链表
- 合并两个有序链表
- 合并两个有序链表
- 合并两个有序链表
- 合并两个有序链表
- 合并两个有序链表
- 一个学习PCI Express的 不错去处
- Storm 单机环境的安装与配置
- source insight 2
- 做mapreduce join时遇到的问题
- input只能输入数字和小数点
- 笔试题四:带头节点head两个链表合并,并且有序
- perl入门
- enctype已经设置为multipart/form-data 但request.getinputstream()仍然为null
- 【总结】Python 2.x中常见字符编码和解码方面的错误及其解决办法
- poj1067(威佐夫博弈)
- 从支付宝获取的跳转提示
- 笔试题五:实现输出矩阵 二维数组
- 公司,文化,团队,加班,建议
- 只运行一个实例的例程