- 两个有序链表合并
方法
讲真的,我真是一个傻吊,这题写过一次了,还是调试半天,曹
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
{
ListNode* root = new ListNode(-1);
ListNode* h = root;
ListNode* curr1 = pHead1;
ListNode* curr2 = pHead2;
if(curr1 == nullptr){
return curr2;
}else if(curr2 == nullptr){
return curr1;
}
while(curr1!=nullptr && curr2!=nullptr){
if(curr1->val < curr2->val){
//curr1->next = h->next;
h->next = curr1;
h = curr1;
curr1 = curr1->next;
}else{
//curr2->next = h->next;
h->next = curr2;
h = curr2;
curr2 = curr2->next;
}
}
if(curr1!=nullptr && curr2 == nullptr){
h->next = curr1;
}else if(curr1 == nullptr && curr2 != nullptr){
h->next = curr2;
}
return root->next;
}
};