合并两个排序的链表
来源:互联网 发布:c语言代码指令大全 编辑:程序博客网 时间:2024/05/21 09:45
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
递归版本:
class Solution { public ListNode* Merge(ListNode* list1, ListNode* list2) { if(list1==null) return list2; else if(list2==null) return list1; ListNode mergeHead=null; if(list1.val<list2.val){ mergeHead=list1; mergeHead.next=Merge(list1.next, list2);} else{ mergeHead=list2; mergeHead.next=Merge(list1, list2.next); } return mergeHead; }}非递归版本:
class Solution {public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { ListNode* result = NULL; ListNode* current = NULL; if(pHead1 == NULL) return pHead2; if(pHead2 == NULL) return pHead1; while(pHead1 != NULL && pHead2 != NULL){ if(pHead1->val <= pHead2->val){ if(result == NULL){ current = result = pHead1; } else { current->next = pHead1; current = current->next; } pHead1 = pHead1->next; } else { if(result == NULL){ current = result = pHead2; } else { current->next = pHead2; current = current->next; } pHead2 = pHead2->next; } } if(pHead1 == NULL){ current->next = pHead2; } if(pHead2 == NULL){ current->next = pHead1; } return result; }};
0 0
- 两个已排序链表的合并
- 两个已排序链表的合并
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序了的链表
- 合并两个排序的链表
- 23.合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- python将图片转换为字符画
- 查询规划(使用EXPLAIN)
- maven copy jar包到指定lib目录
- Spring中log4j的使用
- 钓鱼比赛(百度笔试)
- 合并两个排序的链表
- Ubuntu 16.04 LTS安装TensorFlow(Anaconda 4.3.1)
- 朴素贝叶斯
- pom.xml 常用依赖包
- 监听服务
- C#反射
- postgresql.conf配置解析
- pandas学习笔记-索引、选取和过滤
- OJ