概述
输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。
如输入{1,3,5},{2,4,6}时,合并后的链表为{1,2,3,4,5,6},所以对应的输出为{1,2,3,4,5,6},转换过程如下图所示:
class Solution {
public:
ListNode *Merge(ListNode *pHead1, ListNode *pHead2) {
if (pHead1 == nullptr || pHead2 == nullptr)
return pHead1;
ListNode *dummy = new ListNode;//额外设置一个节点
ListNode *s = dummy;
ListNode *p1 = pHead1;
ListNode *p2 = pHead2;
while (p1 && p2) {
if (p2->val >= p1->val) {
s->next = p1;
s = s->next;
p1 = p1->next;
} else {
s->next = p2;
s = s->next;
p2 = p2->next;
}
}
if (p1 == nullptr)
s->next = p2;
if (p2 == nullptr)
s->next = p1;
return dummy->next;
}
};
最后
以上就是辛勤太阳为你收集整理的合并两个排序的链表---C++实现的全部内容,希望文章能够帮你解决合并两个排序的链表---C++实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复