栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

#include 
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");

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1029806.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号