【LeetCode从零单排】No21.MergeTwoSortedLists
生活随笔
收集整理的這篇文章主要介紹了
【LeetCode从零单排】No21.MergeTwoSortedLists
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目
? ? ? 這道題是鏈表的簡單應(yīng)用,將兩個有序鏈表合成一個有序鏈表。 ? ? ? ?思路是:表一,表二各取兩個對象,分別指向current和next,進(jìn)行交叉比較排序。 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;* next = null;* }* }*/ public class Solution {public ListNode mergeTwoLists(ListNode l1, ListNode l2) {//判斷三種null情況if(l1==null && l2==null) return l1;if(l1==null && l2!=null) return l2;if(l1!=null && l2==null) return l1;//定義頭指針if(l1.val<=l2.val){//分別對l1和l2取當(dāng)前和下一節(jié)點指針ListNode first=l1;ListNode second=l1.next;ListNode l2_temp=l2;ListNode l2_second=l2.next;//l2插向l1while(l2_temp!=null){if(second!=null){if(l2_temp.val>=first.val && l2_temp.val<=second.val){first.next=l2_temp;l2_temp.next=second;first=first.next;second=first.next; //這個try catch是指當(dāng)l2_second=null時,l2_second.next是空指針,這時已經(jīng)排序結(jié)束,所以returntry{l2_temp=l2_second; l2_second=l2_second.next;}catch (Exception e){return l1;}}else{first=first.next;second=first.next;}}else{first.next=l2_temp;return l1;}}return l1;}else{ListNode first=l2;ListNode second=l2.next;ListNode l1_temp=l1;ListNode l1_second=l1.next;while(l1_temp!=null){if(second!=null){if(l1_temp.val>=first.val && l1_temp.val<=second.val){first.next=l1_temp;l1_temp.next=second;first=first.next;second=first.next; try{l1_temp=l1_second; l1_second=l1_second.next;}catch (Exception e){return l2;}}else{first=first.next;second=first.next;}}else{first.next=l1_temp;return l2;}}return l2;}}}代碼下載:https://github.com/jimenbian/GarvinLeetCode
/********************************
* 本文來自博客 ?“李博Garvin“
* 轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/buptgshengod
******************************************/
總結(jié)
以上是生活随笔為你收集整理的【LeetCode从零单排】No21.MergeTwoSortedLists的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【LeetCode从零单排】No26.R
- 下一篇: 【LeetCode从零单排】No27.R