剑指offer第16题(合并两个排序的链表)
来源:互联网 发布:mysql主键从1开始 编辑:程序博客网 时间:2024/06/03 14:46
思想:;链表1的头结点的值小于链表2的头结点的值,因此链表1的头结点是合并后的链表的头结点。在剩余的结点中,链表2的头结点的值小于链表1的头结点的值,因此链表2的头结点是剩余结点的头结点,把这个结点和之前合并好的链表的尾结点链接起来。
注意事项:在非递归版本中,注意在两个链表b比较后,有些链表可能还有剩余,因此还需要继续添加在合并后的链表中。
java代码:
/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode Merge(ListNode list1,ListNode list2) { ListNode mergeList= null; if(list1==null){ return list2; } if(list2==null){ return list1; } if(list1.val<list2.val){ mergeList=list1; mergeList.next=Merge(list1.next,list2); } else{ mergeList=list2; mergeList.next=Merge(list1,list2.next); } return mergeList; }}
python代码:
class Solution: # 返回合并后列表 def Merge(self, pHead1, pHead2): if pHead1==None: return pHead2 if pHead2==None: return pHead1 if pHead2==None and pHead1==None: return None mergeList=ListNode(100) p=mergeList while pHead1 and pHead2: if pHead1.val<pHead2.val: mergeList.next=pHead1 pHead1=pHead1.next else: mergeList.next=pHead2 pHead2=pHead2.next mergeList=mergeList.next mergeList.next=pHead1 or pHead2 return p.next
阅读全文
0 0
- 剑指offer第16题(合并两个排序的链表)
- 合并两个排序的链表(剑指Offer 第 15 题)
- 剑指offer 16 合并两个排序的链表
- 剑指Offer(16)______合并两个排序的链表
- 剑指offer(16)—合并两个排序的链表
- 剑指offer(18):合并两个排序的链表
- 剑指offer(13)-合并两个排序的链表
- 剑指offer:合并两个排序的链表(java)
- 剑指offer(十六)合并两个排序的链表
- 《剑指offer》刷题笔记(代码的鲁棒性):合并两个排序的链表
- 剑指Offer——(16)合并两个排序的链表
- 剑指offer 17-合并两个排序表的链表
- 剑指Offer之合并两个排序的链表
- 剑指offer:合并两个排序的链表
- 剑指offer:合并两个排序的链表
- 【剑指offer】Q17:合并两个排序的链表
- 剑指offer-17:合并两个排序的链表
- 剑指offer系列源码-合并两个排序的链表
- 计算机各层网络协议
- 【tensorflow】tensor连接操作concat
- 文件系统(一)
- 对象引用之String
- JZOJ 5406. 【NOIP2017提高A组模拟10.10】Tree
- 剑指offer第16题(合并两个排序的链表)
- WebService服务及客户端调用简单实例
- HDU4745:Two Rabbits(区间DP)
- 最短路Floyd、Dijkstra
- sip概念
- Jzoj4627 斐波那契数列
- POJ 3207 Ikki's Story IV
- Unity使用第三方C语言库思路小结
- 在opencv与vs2017联合编程时,程序运行时报错OpenCV Error