class Solution { public: ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) { if(list1==NULL) { return list2; } if(list2==NULL) { return list1; } ListNode* node=new ListNode(0); ListNode* tmp=node; while(list1!=NULL && list2!=NULL) { if(list1->val >= list2->val) { tmp->next=list2; list2=list2->next; } else { tmp->next=list1;//tmp指向这个结点 list1=list1->next;//指针指向下一个结点 } tmp=tmp->next;//更新tmp if(list1==NULL) { tmp->next=list2; return node->next; } if(list2==NULL) { tmp->next=list1; return node->next; } } return node->next; } };