LeetCode 21.Merge Two Sorted Lists

傷城~ 2022-05-11 00:44 215阅读 0赞

题目描述:

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

示例:

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

Accepted C++ Solution:

  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. */
  9. class Solution {
  10. public:
  11. ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
  12. ListNode sort(0);
  13. ListNode *tail = &sort;
  14. while(l1 && l2) {
  15. if (l1->val < l2->val) {
  16. tail->next = l1;
  17. l1 = l1->next;
  18. }
  19. else {
  20. tail->next = l2;
  21. l2 = l2->next;
  22. }
  23. tail = tail->next;
  24. }
  25. tail->next = l1 ? l1 : l2; //其中一个链表结束后,跳出while循环
  26. return sort.next;
  27. }
  28. };

发表评论

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

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

相关阅读