题目
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
解析
代码
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/class Solution {public:ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {ListNode* h1 = l1;ListNode* h2 = l2;ListNode* dummy = new ListNode(0);ListNode* h = dummy;while (h1 && h2) {if (h1->val < h2->val) {h->next = h1;h1 = h1->next;} else {h->next = h2;h2 = h2->next;}h = h->next;}h->next = h1 ? h1 : h2;ListNode* retNode = dummy->next;delete dummy;return retNode;}};
