/** Definition for singly-linked list. */
#include <iostream>
using namespace std;
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
class Solution {
public:
ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) {
if (l1==NULL) {
return l2;
}
if (l2==NULL) {
return l1;
}
//头结点
ListNode *pHead=NULL;
//默认从小到大排序
if (l1->val<l2->val) {
pHead=l1;
l1=l1->next;
}else{
pHead=l2;
l2=l2->next;
}
ListNode *pCur=pHead;
while (l1!=NULL&&l2!=NULL) {
if (l1->val<l2->val) {
pCur->next=l1;
l1=l1->next;
}else{
pCur->next=l2;
l2=l2->next;
}
pCur=pCur->next;//当前指针后移
}
if (l1==NULL) {
pCur->next=l2;
}else{
pCur->next=l1;
}
return pHead;
}
};
int main(){
ListNode *p1=new ListNode(5);
ListNode *p2=new ListNode(1);
p2->next=new ListNode(2);
p2->next->next=new ListNode(4);
Solution so;
ListNode *res= so.mergeTwoLists(p1, p2);
cout<<res->val<<res->next->val<<res->next->next->val<<res->next->next->next->val<<endl;
return 0;
}
[leetcode] Merge Two Sorted Lists
最新推荐文章于 2024-05-07 23:40:32 发布