[LeetCode] 21. Merge Two Sorted Lists ☆

?

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.

?

解法:

  新建一個鏈表,依次比較兩個鏈表的頭元素,把較小的移到新鏈表中,直到有一個為空,再將另一個鏈表剩余元素移到新鏈表末尾。

采用循環的方式,代碼如下:

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) { val = x; }* }*/
public class Solution {public ListNode mergeTwoLists(ListNode l1, ListNode l2) {ListNode res = new ListNode(0);ListNode last = res;while (l1 != null && l2 != null) {if (l1.val < l2.val) {last.next = l1;l1 = l1.next;} else {last.next = l2;l2 = l2.next;}last = last.next;}last.next = (l1 != null) ? l1 : l2;return res.next;}
}

?

采用遞歸的方式,代碼如下:

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) { val = x; }* }*/
public class Solution {public ListNode mergeTwoLists(ListNode l1, ListNode l2) {if (l1 == null) return l2;if (l2 == null) return l1;ListNode head = l1.val < l2.val ? l1 : l2;ListNode other = l1.val < l2.val ? l2 : l1;head.next = mergeTwoLists(head.next, other);return head;}
}

或者:

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) { val = x; }* }*/
public class Solution {public ListNode mergeTwoLists(ListNode l1, ListNode l2) {if (l1 == null) return l2;if (l2 == null) return l1;if (l1.val < l2.val) {l1.next = mergeTwoLists(l1.next, l2);return l1;} else {l2.next = mergeTwoLists(l1, l2.next);return l2;}}
}

?

轉載于:https://www.cnblogs.com/strugglion/p/6414195.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/255362.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255362.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255362.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Val編程-特殊函數使用

Waitendmove()和$Waitendmove()使用心得 這是兩個部分&#xff0c;程序運行部分和運動堆棧部分&#xff0c;waitendmove是兩個部分進行交互的一個函數。 一般情況下waitendmove()速度會降到0&#xff0c;相當于blend等于off. 代碼&#xff1a; begincls()userPage()title("…

Redis的五種數據結構

Redis支持持久化只是它的一件武器&#xff0c;它提供了多達5種數據存儲方式&#xff1a; 一 string&#xff08;字符串&#xff09; string是最簡單的類型&#xff0c;你可以理解成與Memcached一模一樣的類型&#xff0c;一個key對應一個value&#xff0c;其上支持的操作與Mem…

【pyqt5學習】——QDateTimeEdit控件學習

目錄 1、同時顯示日期時間QDateTime 2、只顯示日期QDate 3、只顯示時間QTime 4、設置顯示的格式setDisplayFormat 5、 QDateTimeEdit常用信號 6、實例 1、同時顯示日期時間QDateTime # 同時顯示日期時間dateTimeEdit1 QDateTimeEdit()dateTimeEdit2 QDateTimeEdit(QDat…

復選框做成單選效果

function zlClick($id){ var eles document.getElementById($id).children; var srcEle event.srcElement; for(var i0;i<eles.length;i){ if(srcEle.checked){ if(eles[i].value!srcEle.value){ eles[i].checkedfalse; } } } } 技術領域可信計算 其他 申請日 200020012…

013. MVC5過濾器

微軟提供了4中過濾器: 1.Action過濾器: 在Action方法執行之前和Action方法執行之后, 會執行此過濾器中的代碼. 比如在執行public ActionResult Index()方法之前或之后; 也可以說是在方法執行前或執行后; 接口: IactionFilter 抽象類名: ActionFilterAttribute 添加一個實現…

Val編程-讀取漢字

Val編程-讀取漢字 Val編程中&#xff0c;對于漢字的讀取不是很友好&#xff0c;利用fileget直接讀取記事本產生的文件字符串會導致亂碼的產生。因為Val只支持使用utf-8進行編碼&#xff0c;因此讀取的文本需要進行utf-8格式轉換。 在GBK中&#xff0c;漢字占兩個字節。并且…

【pyqt5學習】——菜單欄(QMenu())、工具欄QToolBar學習

目錄 1、菜單欄&#xff08;QMenu()&#xff09;——一般在窗口頂部 1&#xff09;創建菜單欄步驟 2&#xff09;信號與方法 3&#xff09;實操 2、工具欄——一般在菜單欄下方 1&#xff09;創建步驟 2&#xff09;方法與信號 信號&#xff1a; 方法&#xff1a; 3&am…

Java核心技術及面試指南 異常部分的面試題歸納以及答案

4.2.4.1 throw和throws有什么差別&#xff1f;異常&#xff08;Exception&#xff09;和錯誤&#xff08;Error&#xff09;有什么差別&#xff1f; throw語句表示拋出異常&#xff0c;由方法體內的語句處理。throws語句用在方法聲明后面&#xff0c;表示如果拋出異常&#xff…

win7win10 配置wlan熱點

win7 & win10 系統自帶wlan功能&#xff0c;配置方法如下&#xff1a; 命令行輸入: 1. netsh wlan set hostednetwork mode allow ssid "Haha" key12345678 2. netsh wlan start hostednetwork netsh wlan show hostednetwork 轉載于:https://www.cnblogs.com/…

java---Socket編程出現的異常種類

.java.net.SocketTimeoutException.這個異常比較常見&#xff0c;socket超時。一般有2個地方會拋出這個&#xff0c;一個是connect的時候&#xff0c;這個超時參數由connect(SocketAddress endpoint,int timeout)中的后者來決定&#xff0c;還有就是setSoTimeout(int timeout)&…

【pyqt5學習】——利用Pyqt5連接打印機(QtPrintSupport、QPrintDialog、QPageSetupDialog)

目錄 1、利用QtPrintSupport直接連接打印機——不常用 1&#xff09;基本知識 2&#xff09;完整代碼案例 3&#xff09;結果 2、 打印對話框QPrintDialog、打印設置對話框QPageSetupDialog 1&#xff09;彈出打印設置對話框 2&#xff09;彈出打印對話框 注&#xff1a…

Val編程-按鍵響應模式

由于Val是通過語句gotoxy函數來進行光標移動的&#xff0c;不支持觸摸屏與鼠標&#xff0c;因此對于其界面編程有很大的局限。 一般有下面幾種模式來進行編程。 1.按鍵響應模式&#xff08;中斷模式&#xff09; 2.輪詢模式 一般推薦使用按鍵響應模式。其原理是對于有按鍵按下…

[Android]SQLite的使用

Android 數據存儲提供了四種存儲方式&#xff1a; Shared Preferences 使用鍵值對&#xff08;Map(key, value)&#xff09;來存儲數據 Internal Storage 內部存儲&#xff0c;存儲在設備內存的 私人數據 External Storage 外部存儲&#xff0c;存儲在外部設備的 公共數據…

第一百四十五節,JavaScript,同步動畫

JavaScript&#xff0c;同步動畫 將上一節的&#xff0c;移動透明動畫&#xff0c;修改成可以支持同步動畫&#xff0c;也就是可以給這個動畫方法多個動畫任務&#xff0c;讓它同時完成 原理&#xff1a; 向方法里添加一個屬性&#xff0c;這個屬性是一個對象&#xff0c;同步動…

Exchange Server 2016管理系列課件39.新建本地移動請求

場景通過新建本地移動請求&#xff0c;可以很方便的將用戶郵箱從一個數據庫遷移到另外一個數據庫。1&#xff09;跨平臺郵件遷移&#xff1b;&#xff08;低exchange遷移到高版本exchange&#xff09;2&#xff09;數據庫平衡與優化&#xff1b;&#xff08;企業當中&#xff0…

【數據庫學習】——【匯總】MySQL數據庫下載與安裝(Msi文件安裝和免安裝版本)、Navicat下載與安裝

目錄 1、MySQL數據庫下載與安裝 1&#xff09;MySQL數據庫下載 MySQL官網 MySQL數據庫下載 2&#xff09;MySQL 通過msi文件安裝 3&#xff09;MySQL免安裝版本使用 1&#xff09;將免安裝包移動到安裝的文件夾位置&#xff1b; 2&#xff09;新建data文件夾 3&#xff…

Val編程-文本操作

Val系統相對于高級語言來說&#xff0c;對于文本操作的功能相當的弱。 一般的文本&#xff08;文件夾&#xff09;操作有&#xff1a; 1.新建文本&#xff0c; 2.刪除文本&#xff0c; 3.新建文件夾&#xff0c; 4.刪除文件夾&#xff0c; 5.文本重命名&#xff0c; 6.文…

Linux高級編程--01.vi命令

VI是Linux/Unix下標配的一個純字符界面的文本編輯器。由于不支持鼠標功能&#xff0c;也沒有圖形界面&#xff0c;相關的操作都要通過鍵盤指令來完成&#xff0c;需要記憶大量命令。因此很多人不大喜歡它&#xff0c;但同時由于鍵盤的方式往往比鼠標來得快&#xff0c;一旦熟練…

【數據庫學習】——糾錯:mysql Authentication plugin ‘caching_sha2_password‘ is not supported

目錄 1、環境介紹 2、問題描述 3、原因分析 4、 解決方案 1&#xff09;方法一&#xff1a;直接改成mysql_native_password驗證方式 2&#xff09;方案二&#xff1a; 利用sql命令將驗證機制修改 ① 打開命令行窗口——cmd ② 登錄mysql數據庫 ③ 查看不同用戶名的身份…

xcode中用pods管理第三方庫轉

安裝pods &#xff1a;http://www.cnblogs.com/wangluochong/p/5567082.html 史上最詳細的CocoaPods安裝教程 --------------------------------------------- 第一步&#xff1a;Cmmand&#xff0b;空格&#xff0c;搜索"終端"&#xff0c;使用cd命令進入到我們項目…