合并两个排序的链表---C++实现-创新互联
输入两个递增的链表,单个链表的长度为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;
}
};
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网站名称:合并两个排序的链表---C++实现-创新互联
分享路径:http://azwzsj.com/article/cesppd.html