最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

帶你了解如何用C++合并兩個有序鏈表

 更新時間:2021年08月19日 09:43:23   作者:久病成良醫(yī)  
這篇文章主要介紹了c++ 如何合并兩個有序鏈表,小編感覺這篇文章還不錯,希望能幫助大家更好的理解和學(xué)習(xí)C++,感興趣的朋友可以了解下

將兩個升序鏈表合并為一個新的 升序 鏈表并返回。新鏈表是通過拼接給定的兩個鏈表的所有節(jié)點組成的。

示例 1:

輸入:l1 = [1,2,4], l2 = [1,3,4]

輸出:[1,1,2,3,4,4]

在這里插入圖片描述

示例 2:

輸入:l1 = [], l2 = []

輸出:[]

示例 3:

輸入:l1 = [], l2 = [0]

輸出:[0]

思路

可以簡單理解為: 同時遍歷兩個鏈表, 當(dāng)前遍歷的結(jié)點,誰的結(jié)點小,就把誰的結(jié)點“摘下來”,“安裝”在新鏈表上就可以了吧。

這里為了簡單方便的處理, 給新鏈表先“安裝”一個頭結(jié)點

在這里插入圖片描述

代碼

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
        // 使用帶頭結(jié)點的鏈表解決問題
        // 待輸出鏈表的頭部
        ListNode* head = new ListNode;  //節(jié)點是個指針,需要new來開辟空間
        // 待輸出鏈表的 last 結(jié)點
        ListNode* last = head;   //last和head是一個東西,只是為了最后輸出的時候找到head
        while(l1 != nullptr && l2 != nullptr){  //循環(huán)條件
            if(l1->val < l2->val){
                last->next = l1;    //last->next指向l1
                l1 = l1->next;      //將l1的下一個節(jié)點改為l1
            }
            else{
                last->next = l2;
                l2 = l2->next;
            }
            last = last->next;   //將last的下一個節(jié)點改為last
        }
         // l1 或 l2 可能還有剩余結(jié)點沒有合并, 
        // 由于從上面的 while 循環(huán)中退出, 那么鏈表 l1 和 l2 至少有一個已經(jīng)遍歷結(jié)束
        if(l1 != nullptr){
            last->next = l1;
        }
        else if(l2 != nullptr){
            last->next = l2;
        }
        return head->next;
    }
};

鏈表Listnode詳細(xì)介紹

Listnode定義 。

struct ListNode {
       int val;    //定義val變量值,存儲節(jié)點值
       struct ListNode *next;   //定義next指針,指向下一個節(jié)點,維持節(jié)點連接
  }

1.節(jié)點存儲了兩個變量:value 和 next。

value 是這個節(jié)點的值,

next 是指向下一節(jié)點的指針,

當(dāng) next 為空指針時,這個節(jié)點是鏈表的最后一個節(jié)點。

2.注意val只代表當(dāng)前指針的值,

比如p->val表示p指針的指向的值;

而p->next表示鏈表下一個節(jié)點,也是一個指針。

3.構(gòu)造函數(shù)包含兩個參數(shù) _value 和 _next ,分別用來給節(jié)點賦值和指定下一節(jié)點

總結(jié)

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • 一篇文章帶你了解C++中的異常

    一篇文章帶你了解C++中的異常

    這篇文章主要為大家詳細(xì)介紹了C++中的異常,使用數(shù)據(jù)庫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 利用C++實現(xiàn)計算機輔助教學(xué)系統(tǒng)

    利用C++實現(xiàn)計算機輔助教學(xué)系統(tǒng)

    我們都知道計算機在教育中起的作用越來越大。這篇文章主要為大家詳細(xì)介紹了如何利用C++編寫一個計算機輔助教學(xué)系統(tǒng),感興趣的可以了解一下
    2023-05-05
  • QT實現(xiàn)串口通信的完整步驟

    QT實現(xiàn)串口通信的完整步驟

    如果用qt寫程序作為上位機,然后通過和usb和下位機通信的時候,就需要用到qt中的串口通信了,下面這篇文章主要給大家介紹了關(guān)于QT實現(xiàn)串口通信的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • C++中求數(shù)組長度的方法詳解

    C++中求數(shù)組長度的方法詳解

    C++中沒有直接提供求數(shù)組長度的方法,提供了sizeof(),begin(),end()等方法,可以供求數(shù)組長度使用,文中通過代碼示例給大家講解的非常詳細(xì),具有一定的參考價值,需要的朋友可以參考下
    2023-12-12
  • 基于C++自制屠夫躲貓貓小游戲

    基于C++自制屠夫躲貓貓小游戲

    這篇文章主要為大家詳細(xì)介紹了如何基于C++自制屠夫躲貓貓小游戲,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • C語言實現(xiàn)冒泡排序的思路以及過程

    C語言實現(xiàn)冒泡排序的思路以及過程

    冒泡排序是最簡單的排序方法,理解起來容易。雖然它的計算步驟比較多,不是最快的,但它是最基本的,初學(xué)者一定要掌握。本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值
    2021-09-09
  • 基于Windows API實現(xiàn)遍歷所有文件并刪除的方法

    基于Windows API實現(xiàn)遍歷所有文件并刪除的方法

    這篇文章主要介紹了基于Windows API實現(xiàn)遍歷所有文件并刪除的方法,是win32應(yīng)用程序的一個比較典型的文件操作應(yīng)用技巧,需要的朋友可以參考下
    2015-04-04
  • C語言的程序環(huán)境與預(yù)處理你真的了解嗎

    C語言的程序環(huán)境與預(yù)處理你真的了解嗎

    這篇文章主要為大家詳細(xì)介紹了C語言的程序環(huán)境與預(yù)處理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • 使用C++和Direct3D (d3d)獲取屏幕截圖并根據(jù)傳入分辨率進行縮放圖片大小(最新推薦)

    使用C++和Direct3D (d3d)獲取屏幕截圖并根據(jù)傳入分辨率進行縮放圖片大小(最新推薦)

    這篇文章主要介紹了使用C++和Direct3D (d3d)獲取屏幕截圖并根據(jù)傳入分辨率進行縮放圖片大小,本文給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • 深入解析C++編程中范圍解析運算符的作用及使用

    深入解析C++編程中范圍解析運算符的作用及使用

    這篇文章主要介紹了C++編程中范圍解析運算符的使用方法,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2016-01-01

最新評論

龙江县| 永吉县| 洛扎县| 乐亭县| 宜宾县| 西畴县| 高邮市| 鄂托克前旗| 三河市| 本溪市| 凤翔县| 平利县| 呈贡县| 甘德县| 色达县| 东辽县| 尉犁县| 广饶县| 沙田区| 鄂州市| 拜城县| 绥宁县| 宿州市| 鲁甸县| 鄂尔多斯市| 宾川县| 凤城市| 京山县| 哈密市| 泉州市| 襄城县| 灵川县| 太白县| 河北区| 政和县| 资阳市| 额敏县| 青浦区| 望江县| 鄂伦春自治旗| 禄丰县|