链表问题(二)——有序链表合并
2015-09-25 11:27
176 查看
已知两个链表head1和head2个字有序,请把他们合并成一个链表依然有序(包含所有结点,即便大小相同)
struct Node { int data; Node *next; }; //方法一:递归实现 Node *Merge(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 = Merge(head1->next, head2); } else { head = head2; head->next = Merge(head1,head2->next); } return head; } //方法二:循环实现 Node * Merge(Node * head1,Node *head2) { if(head1 == NULL) return head2; if(head2 == NULL) return head1; Node *head = NULL; Node *p1 = NULL; Node *p2 = NULL; if(head1->data <= head2->data) { head=head1; p1=head1->next; p2=head2; } else { head = head2; p1=head1; p2 = head2->next; } Node *pcurr=head; while(p1 != NULL && p2 != NULL) { if(p1->data < p2->data) { pcurr->next = p1; pcurr = p1; p1 = p1->next; } else { pcurr->next = p2; pcurr = p2; p2 = p2->next; } } while(p1 != NULL) { pcurr->next = p1; pcurr = p1; p1 = p1->next; } while(p2 != NULL) { pcurr->next = p2; pcurr = p2; p2 = p2->next; } return head; }
相关文章推荐
- 停课的沉淀反思(一)——今目标
- 使用 git 进行项目同步开发步骤
- iOS项目开发实战——理解frame,bounds,center
- jtds驱动 代替 jdbc驱动
- onethink 常见问题
- 重置SQLSERVER表的自增列,让自增列重新计数
- The Karplus-Strong Algorithm
- 【物联网】QCA4010之SNTP协议
- Android中插件开发篇之----应用换肤原理解析
- The Karplus-Strong Algorithm
- Delete Node in a Linked List -- leetcode
- Java学习笔记【泛型数组列表ArrayList】
- my django notes
- emacs基本命令
- Shell脚本调用mysql语句
- Sqoop问题总结
- Winform- TreeView的使用例子
- 欢迎使用CSDN-markdown编辑器
- 各种数据库的jdbc驱动下载及连接方式
- mysql 常用配置