Microsoft100——005.合并两个已经排序好的链表
2014-09-10 16:30
253 查看
#include<iostream> using namespace std; struct ListNode { int value; ListNode *next; }; ListNode* AddToTail(ListNode *pHead,int value) { ListNode *pNew = new ListNode; pNew->value = value; pNew->next = NULL; if (pHead == NULL) { pHead = pNew; } else { ListNode *pNode = pHead; while(pNode->next != NULL) { pNode = pNode->next; } pNode->next = pNew; } return pHead; } void printList(ListNode *pHead) { ListNode *temp = pHead; while(temp!=NULL) { cout<<temp->value<<endl; temp = temp->next; } } ListNode *MergeList(ListNode *pHead1,ListNode *pHead2) { if (pHead1 == NULL) return pHead2; if (pHead2 == NULL) return pHead1; ListNode *pMergeList = NULL; if (pHead1->value <= pHead2->value) { pMergeList = pHead1; pMergeList->next = MergeList(pHead1->next,pHead2); } if (pHead1->value > pHead2->value) { pMergeList = pHead2; pMergeList->next = MergeList(pHead1,pHead2->next); } return pMergeList; } void main() { ListNode *pHead1=NULL,*pHead2=NULL,*pHead=NULL; for (int i=1 ; i<10 ; i=i+2) { pHead1 = AddToTail(pHead1,i); } for (i=2 ; i<10 ; i=i+2) { pHead2 = AddToTail(pHead2,i); } pHead = MergeList(pHead1,pHead2); printList(pHead); }
相关文章推荐
- 合并两个已经排序的链表
- 合并两个已经排序的链表
- C++实现两个已经排序的链表进行合并
- 合并两个已经排序好的链表
- leetcode合并两个已经排序的链表
- C++实现两个已经排序的链表进行合并
- 《剑指offer》面试题17—合并两个排序链表
- 合并两个排序的链表
- 合并两个排序链表
- 剑指Offer之合并两个排序的链表
- 已知m和n是已经排序好的数组,从小到大,现在要合并这两个数组内的数到一个数组,仍然要求是从小到大排序
- 已知m和n是已经排序好的数组,从小到大,现在要合并这两个数组内的数到一个数组,仍然要求是从小到大排序
- 面试题15:合并两个排序的链表
- 两个已排序链表的合并
- 合并两个排序好的链表/链表去重/链式快排
- 剑指Offer - 九度1519 - 合并两个排序的链表
- 已知m和n是已经排序好的数组,从小到大,现在要合并这两个数组内的数到一个数组,仍然要求是从小到大排序
- 两个已排序链表的合并
- 两个已经排好序的链表合并为一个有序链表
- 合并两个已经排序的数组