/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */ classSolution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2){ ListNode *p = new ListNode(); ListNode *ans = p; while(l1 != nullptr && l2 != nullptr) { if(l1.val > l2.val) { p -> next = new ListNode(l2 -> val); p = p -> next; l2 = l2 -> next; } else { p -> next = new ListNode(l1 -> val); p = p -> next; l1 = l1 -> next; } } while(l1 != nullptr) {
p -> next = new ListNode(l1 -> val); p = p -> next; l1 = l1 -> next; } while(l2 != nullptr) { //p -> val = l2 -> val; p -> next = new ListNode(l2 -> val); p = p -> next; l2 = l2 -> next; } return ans -> next; } };