【LeetCode】21. 合并两个有序链表

秒速五厘米 2022-05-11 11:16 344阅读 0赞

题目链接:https://leetcode-cn.com/problems/merge-two-sorted-lists/description/

题目描述

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

示例

输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4

解决方法

思路:新建一个链表,然后比较两个链表中的元素值,把较小的那个链到新链表中

  1. // *
  2. // * Definition for singly-linked list.
  3. // * struct ListNode {
  4. // * int val;
  5. // * ListNode *next;
  6. // * ListNode(int x) : val(x), next(NULL) {}
  7. // * };
  8. class Solution {
  9. public:
  10. ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
  11. ListNode *head=new ListNode(0);
  12. ListNode *tail=head;
  13. while(l1 && l2){
  14. if (l1->val<=l2->val){
  15. tail->next=l1;
  16. l1=l1->next;
  17. }
  18. else{
  19. tail->next=l2;
  20. l2=l2->next;
  21. }
  22. tail=tail->next;
  23. }
  24. if (l1) tail->next=l1;
  25. if (l2) tail->next=l2;
  26. return head->next;
  27. }
  28. };

发表评论

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

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

相关阅读