当前位置:   article > 正文

21.合并两个有序链表_struct listnode* merge(struct listnode* l1, struct

struct listnode* merge(struct listnode* l1, struct listnode* l2) { if (l1 ==

在这里插入图片描述

struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2){
    if(l1==NULL)//当两链表都为空时,返回NULL,当其中一个为空时,返回另一个非空链表
    {
        return l2==NULL? NULL:l2;
    }
    if(l2==NULL)
    {
        return l1==NULL? NULL:l1;
    }
    struct ListNode* head=(struct ListNode*)malloc(sizeof(struct ListNode));
    head->next=NULL;
    struct ListNode* p=head;
    if(l1->val<l2->val)
    {
        head->val=l1->val;
        l1=l1->next;
    }
    else
    {
        head->val=l2->val;
        l2=l2->next;
    }
while(l1&&l2)//从两个链表的表头开始,比较两个链表节点的大小,当其中一个链表为空时,退出循环
{
    struct ListNode* temp=(struct ListNode*)malloc(sizeof(struct ListNode));//把数值更小的一个节点存储到一个新申请的节点中,同时该链表的指针向后移一位
    temp->next=NULL;
    if(l1->val<l2->val)
    {
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/533024
推荐阅读
相关标签
  

闽ICP备14008679号