题目描述
输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。
示例1:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
固定头结点fix作为结果的头结点,p遍历
比较每个结点的大小,小于时跟在p后面
class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode* fix=new ListNode(-1);//固定头结点 ListNode* p=fix;//负责遍历 while(l2&&l1){ if(l1&&l2&&l1->val<=l2->val) {//那边小就把它放在p后面,不重新生成结点 p->next=l1; l1=l1->next; } else if(l1&&l2&&l1->val>l2->val) { p->next=l2; l2=l2->next; } p=p->next; } if(l1) p->next=l1;//直接l1即可,不需要写while循环 if(l2) p->next=l2; return fix->next;//输出头结点的下一位 } };