标签:节点 return 递增 null delete else amp linked 示例
输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。
示例1:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
限制:
0 <= 链表长度 <= 1000
code:循环
/** * 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) { if(l1==nullptr||l2==nullptr) return l1==nullptr?l2:l1; ListNode* h1=new ListNode(0); ListNode* H=h1; while(l1&&l2) { if(l1->val<=l2->val) { h1->next=l1; l1=l1->next; } else { h1->next=l2; l2=l2->next; } h1=h1->next; } l1?h1->next=l1:h1->next=l2; ListNode* d=H; H=H->next; d->next=nullptr; delete d; return H; } };
code2:递归
/** * 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) { if(l1==nullptr||l2==nullptr) return l1==nullptr?l2:l1; if(l1->val<=l2->val) { l1->next=mergeTwoLists(l1->next,l2); return l1; } else { l2->next=mergeTwoLists(l1,l2->next); return l2; } } };
标签:节点 return 递增 null delete else amp linked 示例
原文地址:https://www.cnblogs.com/tianzeng/p/12300536.html