LeetCode21. 合并两个有序链表

清疚 2022-05-26 04:29 355阅读 0赞

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

示例:

  1. 输入:1->2->4, 1->3->4
  2. 输出:1->1->2->3->4->4
  3. /**
  4. * Definition for singly-linked list.
  5. * struct ListNode {
  6. * int val;
  7. * ListNode *next;
  8. * ListNode(int x) : val(x), next(NULL) {}
  9. * };
  10. */
  11. class Solution {
  12. public:
  13. ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
  14. ListNode *head=new ListNode(0);
  15. ListNode *p=head;
  16. while(l1!=NULL&&l2!=NULL){
  17. if(l1->val<l2->val){
  18. ListNode *node=new ListNode(l1->val);
  19. p->next=node;
  20. p=p->next;
  21. l1=l1->next;
  22. }else{
  23. ListNode *node=new ListNode(l2->val);
  24. p->next=node;
  25. p=p->next;
  26. l2=l2->next;
  27. }
  28. }
  29. while(l1!=NULL){
  30. ListNode *node=new ListNode(l1->val);
  31. p->next=node;
  32. p=p->next;
  33. l1=l1->next;
  34. }
  35. while(l2!=NULL){
  36. ListNode *node=new ListNode(l2->val);
  37. p->next=node;
  38. p=p->next;
  39. l2=l2->next;
  40. }
  41. return head->next;
  42. }
  43. };

发表评论

表情:
评论列表 (有 0 条评论,355人围观)

还没有评论,来说两句吧...

相关阅读