合并两个有序链表(非交叉)
2013-03-11 19:48
281 查看
Node *MergeRecursive(Node *head1,Node *head2) {//递归合并两个有序链表 if(head1 == NULL) return head2; if(head2 == NULL) return head1; Node *head = NULL; if(head1->data < head2->data) { head = head1; head->next = MergeRecursive(head1->next,head2); } else { head = head2; head->next = MergeRecursive(head1,head2->next); } return head; } Node *Merge(Node *head,Node *head1,Node *head2) {//非递归合并两个有序链表 Node *tmp = head; while(NULL != head1 && NULL != head2) { if(head1->data < head2->data) { tmp->next = head1; tmp = head1; head1 = head1->next; } else { tmp->next = head2; tmp = head2; head2 = head2->next; } } if(NULL != head1) { tmp->next = head1; } if(NULL != head2) { tmp->next = head2; } return head; }
相关文章推荐
- 两个不交叉的有序链表的合并
- 5,两个不交叉的有序链表的合并
- 合并两个有序的链表(非交叉)
- 合并两个有序的链表新的链表也要有序
- 2-11. 两个有序链表序列的合并(15):链表数据结构基础练习
- 将两个递增的有序链表合并为一个递增的有序链表(C语言编程实现)
- 用递归方法实现两个链表head1和head2各自有序,请把它们合并成一个链表仍然有序。(c/c++)
- 将两个递增的有序链表合并为一个递增的有序链表
- 合并两个有序的链表
- 02-线性结构1 两个有序链表序列的合并
- PATl两个有序链表序列的合并
- 合并两个有序链表
- C 02-线性结构1 两个有序链表序列的合并
- [LeetCode]21. 合并两个有序链表
- 合并两个有序链表
- 合并两个链表,两个表的元素交叉进行,合并之后合并后的链表变成空表
- 合并两个有序链表 经典面试题
- 合并两个有序链表
- 合并两个单链表为递减有序的单链表
- 每日一题(7) - 合并两个有序链表