首页 > 代码库 > 合并两个排序的链表
合并两个排序的链表
题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
/* 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 && !pHead2) return NULL; if(!pHead1) return pHead2; if(!pHead2) return pHead1; ListNode* head=NULL; ListNode* p1=pHead1; ListNode* p2=pHead2; ListNode* p=NULL; while(p1 && p2) { ListNode* min; if(p1->val < p2->val) { min=p1; p1=p1->next; } else { min=p2; p2=p2->next; } min->next=NULL; if(p==NULL) { p=min; head=p; } else { p->next=min; p=min; } } if(p1) { p->next=p1; } if(p2) { p->next=p2; } return head; } };
合并两个排序的链表
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。