class Solution { public: ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { ListNode *head=new ListNode(0);//创建一个头结点,归一化操作,否则第一个加入的节点还要单独做。 ListNode *p=head;//两个指针一个指向头结点,一个指向尾节点。 while(pHead1&&pHead2){ if(pHead1->val<pHead2->val) { p->next=pHead1;//p链接值小的指针 pHead1=pHead1->next;//链表头节点后移。 }else{ p->next=pHead2; pHead2=pHead2->next; } p=p->next;//重新指向尾节点 } p->next=pHead1?pHead1:pHead2; return head->next; } };