国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++實現合并兩個排序的鏈表

2020-01-26 13:31:06
字體:
來源:轉載
供稿:網友

本文實例為大家分享了C++合并兩個排序的鏈表,供大家參考,具體內容如下

問題描述

輸入兩個單調遞增的鏈表,輸出兩個鏈表合成后的鏈表,當然我們需要合成后的鏈表滿足單調不減規則。

struct ListNode {  int val;  struct ListNode *next;  ListNode(int x) :  val(x), next(NULL) {  }};

方法一

class Solution {public:  ListNode* Merge(ListNode* pHead1, ListNode* pHead2)  {    ListNode* newList = NULL; //新鏈表頭    ListNode* newListRear = NULL; //新鏈表尾    // 先處理某個鏈表為空的情形    if (pHead1 == NULL){      return pHead2;    }    if (pHead2 == NULL){      return pHead1;    }    // 把數值小的結點放入新鏈表,生成頭節點    if (pHead1->val <= pHead2->val){      newList = pHead1;      newListRear = pHead1;      pHead1 = pHead1->next;    }else{      newList = pHead2 ;      newListRear = pHead2;      pHead2 = pHead2->next;    }    // 兩表均不空的情形下,遍歷     while (pHead1 != NULL && pHead2 != NULL) {      if (pHead1->val <= pHead2->val) {        newListRear->next =pHead1;        newListRear = pHead1;        pHead1 = pHead1->next;      }else{        newListRear->next =pHead2;        newListRear = pHead2;        pHead2 = pHead2->next;      }    }    //某一表為空時,把另一表接入新表表尾     if (pHead1 == NULL) {      newListRear->next = pHead2;    }    if (pHead2 == NULL) {      newListRear->next = pHead1;    }        return newList;  }};

方法二(遞歸思想)

class Solution {public:  ListNode* Merge(ListNode* pHead1, ListNode* pHead2)  {    if (pHead1 == NULL){      return pHead2;    }    if (pHead2 == NULL){      return pHead1;    }        if (pHead1->val <= pHead2->val){ // pHead1為合并后的頭節點      pHead1->next = Merge(pHead1->next, pHead2);      return pHead1;    }else{ // pHead2 為合并后的頭節點      pHead2->next = Merge(pHead1, pHead2->next);      return pHead2;    }  }};

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 白朗县| 苗栗市| 濮阳市| 阿城市| 巴青县| 太白县| 楚雄市| 开远市| 灵璧县| 沙坪坝区| 深水埗区| 宿松县| 松桃| 涞水县| 平山县| 宁乡县| 南京市| 额尔古纳市| 昭觉县| 汤原县| 建水县| 新和县| 玉田县| 榆中县| 合山市| 普宁市| 蓝田县| 五大连池市| 大埔县| 郧西县| 溧水县| 洪湖市| 任丘市| 涿鹿县| 通辽市| 中超| 霍林郭勒市| 江川县| 射阳县| 永吉县| 昌江|