合并两个排序的链表
来源:互联网 发布:手机淘宝模版怎么做的 编辑:程序博客网 时间:2024/05/16 23:50
剑指0ffer17
题目分析:先找出头结点中最小的值,作为新链表的头结点,然后下节点作为新的头结点,继续合并链表剩余的节点。
注意:1.两个链表都为空,输出空。一个空,则输出另一个。
#include<iostream>using namespace std;struct ListNode{int data;ListNode* pNext;};//创建链表void CreatList(ListNode* &pHead,int data){ListNode* pNewNode = new ListNode();//新建存放数据的节点pNewNode->pNext = NULL;pNewNode->data = data;if(NULL == pHead){pHead = pNewNode;}else{ListNode* pNode = pHead;//新建遍历节点while(pNode->pNext != NULL)pNode = pNode->pNext;pNode->pNext = pNewNode;}}void PrintList(ListNode* &pHead){if(pHead == NULL)cout << "链表为空!"<< endl;else{ListNode* pNode = pHead;while(pNode != NULL){cout << pNode->data << " ";pNode = pNode->pNext;}}cout << endl;}ListNode* MergeList(ListNode* pHead1,ListNode* pHead2){if(pHead1 == NULL)return pHead2;else if(pHead2 == NULL)return pHead1;ListNode* pHead3 =NULL;if(pHead1->data < pHead2->data){pHead3 = pHead1;pHead3->pNext = MergeList(pHead1->pNext,pHead2); }else{pHead3 = pHead2;pHead3->pNext = MergeList(pHead1,pHead2->pNext); }return pHead3;}int _tmain(int argc, _TCHAR* argv[]){int num = 0;ListNode* pHead1 = NULL;ListNode* pHead2 = NULL;cout << "请输入链表1:" << endl;while(cin >> num){if(num == -1)break;CreatList(pHead1,num);}cout << "输出链表1:" << endl;PrintList(pHead1);cout << "请输入链表2:" << endl;while(cin >> num){CreatList(pHead2,num);}cout << "输出链表2:" << endl;PrintList(pHead2);cout << "合并后的链表:" << endl;ListNode* pMergedHead = MergeList(pHead1, pHead2); PrintList(pMergedHead);system("pause");return 0;}
0 0
- 两个已排序链表的合并
- 两个已排序链表的合并
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序了的链表
- 合并两个排序的链表
- 23.合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- JDBC基础
- eclipse下安装和使用AmaterasUML、ModelSpoon生成Java类图
- 进程、线程及内核对象
- Solid Works的印度球迷的eDrawings适用于iOS的增强现实
- 关于ie下 line-height 不兼容,采用margin-top解决办法
- 合并两个排序的链表
- SIM工具包的应用为Android手机更好地服务用户体验
- android项目下调用linuxso库库犯了个错误
- 聆听小故事
- Java编程思想(三) —— 访问权限的控制
- Android之使用Android-query框架进行开发(二)
- 分公司和分公司发生的功法的
- SFTP & FTP Upload
- java 字节流与字符流的区别