题目描述
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
出处
思路
简单题,两个指针就能解决。
代码
class Solution {
public:ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {if(!list1) return list2;if(!list2) return list1;ListNode *p1=nullptr;ListNode *p2=nullptr;ListNode *q=nullptr;if(list1->val<list2->val){p1=list1;p2=list2;}else{p1=list2;p2=list1;}ListNode *res=p1;while(p2!=nullptr){if(p2->val>=p1->val&&(!p1->next||p2->val<p1->next->val)){q=p2->next;p2->next=p1->next;p1->next=p2;p2=q;}elsep1=p1->next;}return res;}
};