合并两个排序的链表

来源:互联网 发布:涡扇15发动机 知乎 编辑:程序博客网 时间:2024/06/06 17:24

题目描述

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
最简单的办法,定义一个新的链表,然后比较链表1和链表2的大小,取小的那个
/*struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) {}};*/class Solution {public:    ListNode* Merge(ListNode* pHead1, ListNode* pHead2)    {           if(pHead1==NULL)                  return pHead2;              if(pHead2==NULL)                  return pHead1;              ListNode *ptr1 = pHead1;              ListNode *ptr2 = pHead2;              ListNode *newlist = new ListNode(0);              ListNode *cur = newlist;              while(ptr1&&ptr2)              {                  if(ptr1->val <= ptr2->val)                  {                      cur->next = ptr1;                      ptr1 = ptr1->next;                      cur = cur->next;                  }                  else                  {                      cur->next = ptr2;                      ptr2 = ptr2->next;                      cur = cur->next;                  }                  cur->next = nullptr;              }              while(ptr1)                  {                      cur->next = ptr1;                      ptr1 = ptr1->next;                      cur = cur->next;                  }              while(ptr2)                    {                      cur->next = ptr2;                      ptr2 = ptr2->next;                      cur = cur->next;                  }             return newlist->next;      }};


0 0
原创粉丝点击