简洁易懂讲清原理,讲不清你来打我~

详细思路
同时遍历两个链表,小的放到新链表结尾,一样大取第一个,一条为空时走另一条,给三条链表哑结点
精确定义
cur1第一条链表已经遍历到某个节点
cur2第二条链表已经遍历到某个节点
cur3第三条链表已经合成到某个节点
dummy123
class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode*dummy1=new ListNode(0,l1); ListNode*dummy2=new ListNode(0,l2); ListNode*dummy3=new ListNode(0,nullptr); ListNode*cur1=dummy1,*cur2=dummy2,*cur3=dummy3; while(cur1->next||cur2->next){ if(cur1->next&&cur2->next){ if(cur1->next->val<=cur2->next->val){ cur3->next=new ListNode(cur1->next->val); cur3=cur3->next; cur1=cur1->next; } else{ cur3->next=new ListNode(cur2->next->val); cur3=cur3->next; cur2=cur2->next; } } else if(cur1->next==nullptr){ cur3->next=new ListNode(cur2->next->val); cur3=cur3->next; cur2=cur2->next; } else if(cur2->next==nullptr){ cur3->next=new ListNode(cur1->next->val); cur3=cur3->next; cur1=cur1->next; } } return dummy3->next; } };
浙公网安备 33010602011771号