核心考点:链表合并,思维缜密程度
输入两个递增的链表,合并这两个链表并使新链表中的结点仍然是递增排序的。
解析一:(常规)
合并两个链表最常规的做法就是,依次比较两个链表的第一个结点,取较小的结点(此处为递增排序)尾插到一个新链表后,直到其中一个链表当中的结点被取完,最后将未取完结点的链表全部尾插到新链表后即可。
动图演示:

/*
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 == nullptr)
return pHead2;
if (pHead2 == nullptr)
return pHead1;
ListNo

最低0.47元/天 解锁文章
378





