C++合并两个有序链表——leetcode21完整代码

一些友友写完了函数却不知道如何在主函数中测试,不多说,完整代码如下:

#include <iostream>
using namespace std;

struct ListNode
{
   int data;
   ListNode *next;
   ListNode(int item) : data(item) { next = NULL; }
};

void traversal_List(ListNode* head)
{
   while (head)
   {
      cout << head->data;
      head = head->next;
   }
}

ListNode* mergeTwoLists(ListNode* list1, ListNode*list2)
{
   if (list1 == nullptr) return list2;
   if (list2 == nullptr) return list1;

   if (list1->data < list2->data)
   {
      list1->next = mergeTwoLists(list1->next, list2);
      return list1;
   }
   else
   {
      list2->next = mergeTwoLists(list1, list2->next);
      return list2;
   }
}

int main()
{
   ListNode list1_1(1);
   ListNode list1_2(2);
   ListNode list1_3(4);

   ListNode list2_1(1);
   ListNode list2_2(3);
   ListNode list2_3(4);

   list1_1.next = &list1_2;
   list1_2.next = &list1_3;
   list1_3.next = NULL;

   list2_1.next = &list2_2;
   list2_2.next = &list2_3;
   list2_3.next = NULL;

   cout << "list1:";
   traversal_List(&list1_1);
   cout << endl;
   cout << "list2:";
   traversal_List(&list2_1);
   cout << endl;

   ListNode* res = mergeTwoLists(&list1_1, &list2_1);
   cout << "new list:"; 
   traversal_List(res);
   cout << endl;
   system("pause");

}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值