<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      時月oe

      博客園 首頁 新隨筆 聯系 訂閱 管理

      題目來源:合并兩個有序鏈表

      image


      兩個鏈表有序,這個很類似于歸并排序的歸并過程,但是數組的歸并過程會創建一個臨時數組,這里如果創建一個臨時鏈表開銷就比較大了,因此需要考慮原地排序算法

      非遞歸方案

      首先我們定義一個ans節點,用來保存排序后的頭節點

      然后定義一個prev節點,表示經過排序后的當前節點

      首先比較list1list2的val大小,讓prev.next指向較小的那個,然后讓較小的那個后移

      然后prev = prev.next,繼續執行比較的操作

      直到list1或者list2為空,最后記得讓prev.next指向不為空的那個節點

      最后返回的時候,返回ans.next即可

      /**
       * Definition for singly-linked list.
       * public class ListNode {
       *     int val;
       *     ListNode next;
       *     ListNode() {}
       *     ListNode(int val) { this.val = val; }
       *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
       * }
       */
      class Solution {
          public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
              ListNode ans = new ListNode();
              ListNode prev = ans;
      
              while(list1 != null && list2 != null){
                  if(list1.val < list2.val){
                      prev.next = list1;      //將前面排序好的節點的next指向list
                      list1 = list1.next;      //讓小的那個指針后移
                      prev = prev.next;     //更新prev,使其指向最近更新的那個節點
                  }else{
                      prev.next = list2;
                      list2 = list2.next;
                      prev = prev.next;
                  }
              }
              if(list1 != null)prev.next = list1;           //最后記得把沒走完的那個鏈表接上
              if(list2 != null)prev.next = list2;
              return ans.next;
          }
      }
      

      遞歸方案

      使用遞歸解決的思路就是:
      既然這個函數返回的是排序好的鏈表的頭節點,那么

      • 如果list1.val < list2.val,那么list1.next = mergeTwoLists(list1.next,list2)
      • 如果list2.val < list1.val,那么list2.next = mergeTwoLists(list1,list2.next)

      最后遞歸終止的條件

      • 如果list1 == null,那么就返回list2
      • 如果list2 == null,那么就返回list1
      /**
       * Definition for singly-linked list.
       * public class ListNode {
       *     int val;
       *     ListNode next;
       *     ListNode() {}
       *     ListNode(int val) { this.val = val; }
       *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
       * }
       */
      class Solution {
          public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
              if(list1 == null)return list2;
              if(list2 == null)return list1;
      
              if(list1.val < list2.val){
                  list1.next = mergeTwoLists(list1.next,list2);
                  return list1;
              }else{
                  list2.next = mergeTwoLists(list1,list2.next);
                  return list2;
              }
          }
      }
      
      posted on 2022-07-19 17:33  時月oe  閱讀(64)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 丁香五月网久久综合| 午夜成人理论无码电影在线播放| 亚洲中文字幕人妻系列| 国产乱码一区二区三区免费 | 精品久久精品久久精品九九| 成人一区二区人妻不卡视频| 国产超高清麻豆精品传媒麻豆精品| 中文字幕人妻在线精品| 国产成人无码区免费内射一片色欲| 国内视频偷拍一区,二区,三区| 新巴尔虎左旗| 人妻少妇精品视频专区| 国产精品亚洲二区亚瑟| 人妻体内射精一区二区三区| 国产女高清在线看免费观看| 亚洲精品视频一二三四区| 四虎成人在线观看免费| 免费人妻无码不卡中文18禁| 亚洲一区二区av偷偷| 国产极品粉嫩福利姬萌白酱| 国产高清在线男人的天堂| av色蜜桃一区二区三区| 中文无码日韩欧免费视频| 久久中文字幕一区二区| 精品人妻码一区二区三区| av中文无码韩国亚洲色偷偷| 福利一区二区在线视频| 成人午夜av在线播放| 少妇人妻偷人偷人精品| 亚洲精品中文字幕无码蜜桃| 国产老熟女伦老熟妇露脸| 久久99国产精品尤物| av色综合久久天堂av色综合在| 中文字幕日韩区二区三区| 欧美人成精品网站播放| 337p粉嫩大胆噜噜噜| 国产一区二区亚洲精品| 亚洲欧美中文字幕日韩一区二区| 天天躁夜夜躁天干天干2020| 与子乱对白在线播放单亲国产| 久久久久香蕉国产线看观看伊|