合并两个排序的链表
2016-08-15 18:07
218 查看
#include<stdio.h> #include<stdlib.h> #include<string.h> struct Node{ int m_value; Node *m_next; }; //递归方式 Node* Merge(Node* pHead1,Node* pHead2){ if(pHead1==NULL) return pHead2; elseif(pHead2==NULL) return pHead1; Node *Mergelist = NULL; if(pHead1->m_value>=pHead2->m_value){ Mergelist = pHead1; Mergelist->m_next = Merge(pHead1->m_next,pHead2); }else{ Mergelist = pHead2; Mergelist->m_next = Merge(pHead1,pHead2->m_next); } return Mergelist; } //非递归 Node* noMerge(Node *pHead1,Node *pHead2){ if(pHead1==NULL) return pHead2; if(pHead2==NULL) return pHead1; Node* mergelist = NULL; while(pHead1->m_next!=NULL&&pHead2->m_next!=NULL){ if(pHead1->m_value>=pHead2->m_value){ if(mergelist==NULL) mergelist = pHead1; else mergelist->m_next = pHead1; pHead1 = pHead1->m_next; }else{ if(mergelist==NULL) mergelist = pHead2; else mergelist->m_next = pHead2; pHead2 = pHead2->m_next; } } return mergelist; }
相关文章推荐
- 17.合并两个排序的链表|剑指Offer
- 面试之路(29)-合并两个排序的链表(递归和非递归)
- 合并两个排序的链表
- 【剑指Offer面试题】 九度OJ1519:合并两个排序的链表
- 14--合并两个排序的链表
- 【链表】[Lintcode]合并两个排序链表
- lintcode——合并两个排序链表
- 合并两个排序的链表
- 合并两个排序的链表(非递归)
- 剑指offer(16)—合并两个排序的链表
- 剑指offer-面试题 17:合并两个排序的链表
- [剑指offer]合并两个排序的链表
- 合并两个排序的链表
- 剑指offer:(17)代码的鲁棒性:合并两个排序的链表
- 剑指offer—第三章高质量代码(合并两个排序链表)
- 《剑指offer》刷题笔记(代码的鲁棒性):合并两个排序的链表
- 合并两个排序的链表
- 剑指Offer面试题25:合并两个排序的链表
- 17、合并两个排序链表
- 合并两个排序的链表