合并两个排序链表 - C++

本文介绍了一种将两个已排序的链表合并为一个新排序链表的方法。通过将两个链表的所有元素存储到数组中并进行排序,然后创建新的链表节点来构造最终的有序链表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

class Solution {
public:
    /**
     * @param ListNode l1 is the head of the linked list
     * @param ListNode l2 is the head of the linked list
     * @return: ListNode head of linked list
     */
    ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) {
        int a[10000];
        ListNode *newnode,*dd;
        newnode=new ListNode;
        dd=newnode;
        int i=1;
        while(l1!=NULL)
        {
           a[i]=l1->val;
            i++;
            l1=l1->next;
        }
        while(l2!=NULL)
        {
            a[i]=l2->val;
            i++;
            l2=l2->next;
        }
        for(int x=1;x<i;x++)
         for(int y=x;y<i;y++)
          {
              if(a[x]>a[y])
              {
                  int t=a[x];
                  a[x]=a[y];
                  a[y]=t;
              }
          }
        for(int j=1;j<i;j++)
        {
            ListNode *newNode;
            newNode=new ListNode;
            newNode->val=a[j];
            newnode->next=newNode;
            newnode=newNode;
        }
        if(dd==NULL)
        return dd;
        else
        return dd->next;
        // write your code here
    }
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值