站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        C語(yǔ)言怎么合并兩個(gè)有序鏈表

        C語(yǔ)言合并兩個(gè)有序鏈表的方法:拼接指定的兩個(gè)有序鏈表的所有節(jié)點(diǎn)即可。例如兩個(gè)有序鏈表分別為【1->2->4】和【1->3->4】,合并后的有序鏈表為【1->1->2->3->4->4】。

        C語(yǔ)言怎么合并兩個(gè)有序鏈表

        具體方法:

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

        (視頻教程推薦:java課程)

        輸入:

        1->2->4, 1->3->4

        輸出:

        1->1->2->3->4->4

        分析:兩個(gè)鏈表為有序鏈表,所以依次遍歷兩個(gè)鏈表比較大小即可。

        代碼實(shí)現(xiàn):

        /**  * Definition for singly-linked list.  * struct ListNode {  *     int val;  *     struct ListNode *next;  * };  */   struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2){     if(l1==NULL){         return l2;     }     if(l2==NULL){         return l1;     }     struct ListNode *l = (struct ListNode*)malloc(sizeof(struct ListNode));     l->next = NULL;     struct ListNode *list1 = l1;     struct ListNode *list2 = l2;     if(l1->val<l2->val){         l->val=l1->val;         if(list1->next==NULL){             l->next=list2;             return l;         }         list1=list1->next;     }else{         l->val=l2->val;         if(list2->next==NULL){             l->next=list1;             return l;         }         list2=list2->next;     }     struct ListNode *list = l;     while(list1->next!=NULL&&list2->next!=NULL){         if(list1->val<=list2->val){             struct ListNode *body = (struct ListNode *)malloc(sizeof(struct ListNode));             body->val = list1->val;             body->next = NULL;             list->next = body;             list = list->next;             list1 = list1->next;         }else{             struct ListNode *body = (struct ListNode*)malloc(sizeof(struct ListNode));             body->val=list2->val;             body->next=NULL;             list->next=body;             list=list->next;             list2=list2->next;         }     }     if(list1->next==NULL){         while(list2->next!=NULL){             if(list1->val<=list2->val){                 list->next = list1;                 list = list->next;                 list->next=list2;                 return l;             }else{                 struct ListNode *body = (struct ListNode*)malloc(sizeof(struct ListNode));                 body->val=list2->val;                 body->next=NULL;                 list->next=body;                 list=list->next;                 list2=list2->next;             }         }     }else{         while(list1->next!=NULL){             if(list2->val<=list1->val){                 list->next=list2;                 list=list->next;                 list->next=list1;                 return l;             }else{                 struct ListNode *body = (struct ListNode*)malloc(sizeof(struct ListNode));                 body->val=list1->val;                 body->next=NULL;                 list->next=body;                 list=list->next;                 list1=list1->next;             }         }     }     if(list1->next==NULL&&list2->next==NULL){         if(list1->val<=list2->val){             list->next = list1;             list=list->next;             list->next=list2;         }else{             list->next=list2;             list=list->next;             list->next=list1;         }     }        return l; }

        圖文教程分享:java入門

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 国产精品无码午夜福利| 久久久精品免费国产四虎| 国产精品久久久久影院色| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 久久久久99精品成人片直播| 国产国产成人久久精品| 精品国产一区二区三区色欲| 亚洲AV无码成人精品区狼人影院| 国产成人精品免费大全| 国产精品一级片| 国产成人精品日本亚洲网站| 色欲国产麻豆一精品一AV一免费| 九九久久精品国产| 99久久精品免费观看国产| 97久久精品午夜一区二区| 亚洲欧洲精品成人久久曰影片| 97国产视频精品| 99re国产精品视频首页| 日韩精品一区二区三区色欲AV| 久久99国产精品成人欧美| 777被窝午夜精品影院| 国产韩国精品一区二区三区久久| 无码日韩精品一区二区免费| 拍国产乱人伦偷精品视频| 777欧美午夜精品影院| 国产精品美女久久久久网| 精品国产三级a在线观看| 亚洲AV无码久久精品狠狠爱浪潮 | 99精品视频免费| 久久精品无码专区免费东京热 | 99久久婷婷免费国产综合精品| 亚洲精品成人无限看| 亚洲一区二区精品视频 | 国产A级毛片久久久精品毛片| 92国产精品午夜福利| 精品国产午夜理论片不卡| 久久久久久夜精品精品免费啦| 日韩精品一区二区三区色欲AV| 亚洲伊人久久精品影院| 亚洲精品国产首次亮相| 亚洲精品无码久久久久久|