合并两个已排序单链表

来源:互联网 发布:淘宝零食批发店 编辑:程序博客网 时间:2024/06/12 01:52

一、保留重复元素

/** * 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;}


0 0
原创粉丝点击