中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何合并兩個有序鏈表

發布時間:2020-06-03 18:07:06 來源:億速云 閱讀:333 作者:Leah 欄目:編程語言

如何合并兩個有序鏈表?相信很多人都還沒學會這個技能,通過這篇文章的總結,希望你能學會合并兩個有序鏈表。如下資料是關于合并兩個有序鏈表的兩種方法

直接合并

因為已經有序了,類似歸并排序中的合并一樣,操作不難,直接上代碼了.

ListNode t = new ListNode(0);
ListNode head = t;
while(l1 != null && l2 != null)    
{
    if(l1.val < l2.val)
    {
        t.next = l1;
        l1 = l1.next;
    }
    else
    {
        t.next = l2;
        l2 = l2.next;
    }
    t = t.next;
}
while(l1 != null)
{
    t.next = l1;
    l1 = l1.next;
    t = t.next;
}
while(l2 != null)
{
    t.next = l2;
    l2 = l2.next;
    t = t.next;
}
return head.next;

如何合并兩個有序鏈表

遞歸合并

這個可以采用遞歸優化,而且不用額外設置一個移動的臨時結點t.首先對兩個指針進行判空操作,其中一個為空的話返回另一個,然后進行遞歸合并,首先創建一個head結點,進行賦值后遞歸合并next結點,將返回值賦給head.next,最后返回head.

if(l1 == null) return l2;
if(l2 == null) return l1;

ListNode head = null;
if(l1.val < l2.val)
{
    head = l1;
    head.next = mergeTwoLists(l1.next, l2);
}
else
{
    head = l2;
    head.next = mergeTwoLists(l1, l2.next);
}
return head;

看完上述內容,你們掌握合并兩個有序鏈表的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

富宁县| 望都县| 延庆县| 山阳县| 汉阴县| 合阳县| 于都县| 含山县| 阳曲县| 建水县| 海宁市| 会泽县| 宁陵县| 武川县| 马山县| 门源| 廊坊市| 从江县| 山阴县| 盱眙县| 高陵县| 平遥县| 安庆市| 无锡市| 义马市| 明光市| 通河县| 清丰县| 林口县| 新巴尔虎左旗| 沽源县| 大宁县| 石渠县| 绥阳县| 沛县| 榕江县| 贵溪市| 唐山市| 桂平市| 安泽县| 田东县|