链表------合并两个排序的链表
来源:互联网 发布:android java 编辑:程序博客网 时间:2024/06/03 07:39
First
------ 递归思路,需要重新创建一个链表,空间复杂度O(1)
ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { if(pHead1==nullptr) return pHead2; if(pHead2==nullptr) return pHead1; ListNode* list; if(pHead1->val>pHead2->val){ list=pHead2; list->next=Merge(pHead1,pHead2->next); } else{ list=pHead1; list->next=Merge(pHead1->next,pHead2); } return list; }
Second
------ 非递归思路,直接在两个链表上修改
ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { if(pHead1==nullptr) return pHead2; if(pHead2==nullptr) return pHead1; ListNode* list=pHead1; ListNode* index1=pHead1,*index2=pHead2,*pre=pHead1,*last; if(pHead1->val>pHead2->val){list=pHead2; pre=index2; index2=index2->next; } else index1=index1->next; while(index1!=nullptr&&index2!=nullptr){ if(index2->val<index1->val){ last=index2->next; pre->next=index2; index2->next=index1; pre=index2; index2=last; } else { pre=index1; index1=index1->next; } } pre->next=index2; return list; }
0 0
- 链表------合并两个排序的链表
- 两个已排序链表的合并
- 两个已排序链表的合并
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序了的链表
- 合并两个排序的链表
- 23.合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 关于mysql的数据库放在哪个文件下
- python3 windows 10 Beautiful Soup4 安装指南
- 工作第六周:二十不惑
- iOS开发笔记>> socket, http(post, get), TCP/ IP
- DFS和BFS的一点简单总结
- 链表------合并两个排序的链表
- L2-016. 愿天下有情人都是失散多年的兄妹-PAT团体程序设计天梯赛GPLT(广度优先bfs)
- HYSBZ - 1599 笨重的石子
- Maven的settings.xml文件介绍
- android推送协议选择?
- Struts2中s:iterator标签的使用详解
- CSS3——变形功能
- uboot的编译过程
- POI实现Excel写入