递归算法专题一>合并两个有序数组

瑞星  金牌会员 | 2024-11-20 14:27:06 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 852|帖子 852|积分 2556

标题:
  
 
  
  剖析: 
  方法一: 
  1. public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
  2.         
  3.         //headH用来返回链表
  4.         ListNode headH = new ListNode(-1);
  5.         ListNode tmp = headH;//遍历两个链表
  6.         while(list1 != null && list2 != null) {
  7.             if(list1.val < list2.val) {
  8.                 tmp.next = list1;
  9.                 list1 = list1.next;
  10.                 tmp = tmp.next;
  11.             }else{
  12.                 tmp.next = list2;
  13.                 list2 = list2.next;
  14.                 tmp = tmp.next;
  15.             }
  16.         }
  17.         //如果一个链表遍历完就接上另一个
  18.         if(list1 != null) {
  19.             tmp.next = list1;
  20.         }
  21.         if(list2 != null) {
  22.             tmp.next = list2;
  23.         }
  24.         return headH.next;
  25.       
  26.     }
复制代码

  方法二:递归 
  

  
   代码:
  1. public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
  2.    
  3.      //方法二递归:
  4.         if(list1 == null) return list2;
  5.         else if(list2 == null) return list1;
  6.         if(list1.val <= list2.val){
  7.             list1.next = mergeTwoLists(list1.next,list2);
  8.             return list1;
  9.         } else {
  10.             list2.next = mergeTwoLists(list1,list2.next);
  11.             return list2;
  12.         }
  13.     }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

瑞星

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表