一、保留重复元素
/**
* Definition for binary tree
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
ListNode *mergeTwoLists(ListNode *list1,ListNode *list2)
{
ListNode dummy(-1);
for(ListNode *p = &head;list1 != nullptr || list2 != nullptr;p=p->next)
{
int val1 = list1==nullptr?INT_MAX:list1->val;
int val2 = list2==nullptr?INT_MAX:list2->val;
if(val1 <= val2)
{
p->next = list1;
list1 = list1->next;
}
else
{
p->next = list2;
list2 = list2->next;
}
}
return dummy.next;
}
二、去除重复元素
/**
* Definition for binary tree
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
ListNode *mergeTwoLists(ListNode *list1,ListNode *list2)
{
ListNode dummy(-1);
for(ListNode *p = &head;list1 != nullptr || list2 != nullptr;p=p->next)
{
int val1 = list1==nullptr?INT_MAX:list1->val;
int val2 = list2==nullptr?INT_MAX:list2->val;
if(val1 < val2)
{
p->next = list1;
list1 = list1->next;
}
else if(val1 > val2)
{
p->next = list2;
list2 = list2->next;
}
else
{
p->next = list1; //p->next = list2;
list1 = list1->next;
list2 = list2->next;
}
}
return dummy.next;
}