欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 艺术 > Grind 75 | 3. merge two sorted lists

Grind 75 | 3. merge two sorted lists

2024/11/30 4:55:30 来源:https://blog.csdn.net/imlxinyu/article/details/140336337  浏览:    关键词:Grind 75 | 3. merge two sorted lists

Leetcode 21. 合并两个有序链表

题目链接

思路:

  • 和归并排序中 merge 部分一致
    1. 两个指针分别指向 2 个链表头
    2. 每次选小的那个加入 res 中,对应指针后移一位;
    3. 重复步骤2,直至一个指针到链表末尾
    4. 将另一个剩余的全部 copy 到 res 中,链表只需要修改末尾结点指向
  • 链表添加结点操作
class Solution {
public:ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {ListNode* res = new ListNode();ListNode* p = res;while (list1 && list2) {int x = list1->val;int y = list2->val;if (x <= y) {p->next = list1;list1 = list1->next;}else {p->next = list2;list2 = list2->next;}p = p->next;}if (list1 && !list2) {p->next = list1;}if (list2 && !list1) {p->next = list2;}return res->next;}
};

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com