1. 程式人生 > >劍指offer 合併兩個排序的連結串列

劍指offer 合併兩個排序的連結串列

輸入兩個單調遞增的連結串列,輸出兩個連結串列合成後的連結串列,當然我們需要合成後的連結串列滿足單調不減規則。

public class Solution {
    public ListNode Merge(ListNode list1,ListNode list2) {
        ListNode head;
        if(list1==null){
            return list2;
        }
        if(list2==null){
            return list1;
        }
        if(list1.val < list2.val){
            head=list1;
            head.next=Merge(list1.next,list2);
        }else{
            head=list2;
            head.next=Merge(list1,list2.next);
        }
        return head;
    }
}

相關推薦

offer----合併有序連結串列

題目:合併兩個遞增的有序連結串列。 注意:測試時一定要考慮全面,當兩個連結串列有一個或兩個都為空的情況。 非遞迴: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { if(pHead1==

offer--合併排序連結串列

題目描述 輸入兩個單調遞增的連結串列,輸出兩個連結串列合成後的連結串列,當然我們需要合成後的連結串列滿足單調不減規則。 解析 將兩個連結串列排序插入vector陣列中,再新建一條連結串列。這種方法

offer 合併排序連結串列

輸入兩個單調遞增的連結串列,輸出兩個連結串列合成後的連結串列,當然我們需要合成後的連結串列滿足單調不減規則。 public class Solution { public ListNode M

Offer - 16:合併排序連結串列

題目描述 輸入兩個單調遞增的連結串列,輸出兩個連結串列合成後的連結串列,當然我們需要合成後的連結串列滿足單調不減規則 題目連結:https://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337

[Offer] 25_合併排序連結串列

題目 輸入兩個遞增排序的連結串列,合併這兩個連結串列並使新連結串列中的節點仍然使遞增排序的。 例: L1:1->3->5->7 L2:2->4->6->8 L:1->2->3->4->5->6->

offer面試題17-:合併排序連結串列

將兩個已經排好序的連結串列(升序)進行合併,使得合併後的連結串列仍然有序。 假設兩個連結串列分別為A和B,我的思路是將使用兩個指標p和q掃描兩個連結串列各一遍,將B連結串列中的元素插入到A中,最終形成一個新的連結串列。 邊界條件:(1)連結串列為空時;          

offer____合併排序連結串列

輸入兩個單調遞增的連結串列,輸出兩個連結串列合成後的連結串列,當然我們需要合成後的連結串列滿足單調不減規則。   struct ListNode {     int val;     struct ListNode *next

offer_合併排序連結串列

題目描述 輸入兩個單調遞增的連結串列,輸出兩個連結串列合成後的連結串列,當然我們需要合成後的連結串列滿足單調不減規則。 # -*- coding:utf-8 -*- # class ListNode: #     def __init__(self, x): #

重拾演算法之Offier——合併排序連結串列

劍指Offier——合併兩個排序的連結串列 題目描述 輸入兩個單調遞增的連結串列,輸出兩個連結串列合成後的連結串列,當然我們需要合成後的連結串列滿足單調不減規則。 /* public class ListNode { int val; ListNo

offer25--合併排序連結串列

題目描述 輸入兩個單調遞增的連結串列,輸出兩個連結串列合成後的連結串列,當然我們需要合成後的連結串列滿足單調不減規則。   思路: 判斷空 頭節點需要判斷, 然後讓頭節點一個一個吞噬連結串列。 比較麻煩 /* struct ListNode

Lintcode 165. 合併排序連結串列

我的程式碼如下: def mergeTwoLists(self, l1, l2): if l1 == None: return l2 if l2 == None: return l1

LinCode 165.合併排序連結串列

思路 兩個指標,分別指向兩個連結串列,從頭開始遍歷 另一個指標指向新建立的節點,將排序好的節點串聯起來 注意此題是允許重複元素的 /** * Definition of singly-linked-list: * class ListNode { * p

合併排序連結串列

public class Solution { public ListNode Merge(ListNode list1,ListNode list2) { if(list1 == null){ return list2; }

合併排序連結串列(LintCode)

實現程式碼:#include <iostream> using namespace std; //Definition of ListNode class ListNode { public: int val; ListNode *next; ListNode(int

Lintcode 165合併排序連結串列

1.問題描述:將兩個排序連結串列合併為一個新的排序連結串列 2.解題思路:遍歷兩個連結串列的公共長度,根據節點值得大小來改變每次節點的連線,然後判斷那條連結串列還有剩餘,最後將較長連結串列的剩餘部分追加到節點的後面 3.通過的程式碼: /**  * Definition o

LintCode-合併排序連結串列

題目描述:將兩個排序連結串列合併為一個新的排序連結串列 樣例 給出1->3->8->11->15->null,2->null,返回1->2->3->8->11->15->null。 做題思路:用兩個頭

offer{15-18}】反轉連結串列合併排序連結串列、樹的子結構、二叉樹的映象

反轉連結串列、合併兩個排序的連結串列、樹的子結構、二叉樹的映象反轉連結串列題目描述C++程式碼題目描述C++程式碼樹的子結構題目描述C++程式碼題目描述C++程式碼 反轉連結串列 題目描述 輸入一

offer合併有序連結串列

時間限制:1秒 空間限制:32768K 熱度指數:347558 本題知識點: 連結串列 題目描述 輸入兩個單調遞增的連結串列,輸出兩個連結串列合成後的連結串列,當然我們需要合成後的連結串列滿足單調不減規則。 思路 歸併排序思想,參考一下這篇博文 /* public class

offer 16:合併有序連結串列

遞迴實現 #include <iostream> using namespace std; struct ListNode { public: int val; struct ListNode *next; }; class Solution { public

Offer-52 連結串列的第一公共結點

題目: 輸入兩個連結串列,找出它們的第一個公共結點。 解答: 第一種,蠻力法,時間複雜度為O(mn),不需要輔助空間 # Definition for singly-linked list. # class ListNode(object): # def __init