文章目录

  • 分析
  • 题目来源

分析

归并排序的思想:使用两个指针,分别指向两个链表,依次遍历两个链表,每次选择其中最小的插入到新链表中。

注意:这里新建一个虚拟节点dummy,第一个结点插入到dummy后面,最后返回的链表即为 dummy->next

/*** 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) {auto dummy = new ListNode(-1);  // 新建结点auto cur = dummy; // cur当前结点while(l1 && l2) { // 两个有序链表都不空if (l1->val <= l2->val) {  // 第一个链表的节点值≤第二个链表的节点值cur->next = l1; cur = cur->next; // cur 后移指向l1l1 = l1->next; //l1后移,指向下一个结点}else { // 对称写法cur->next = l2;cur = cur->next;l2 = l2->next;}}if (l1) cur->next = l1; // 如果l1还不空直接挂过来else cur->next = l2; // l2挂过来return dummy->next;  // 返回合并后链表的头节点}
};

题目来源

https://leetcode-cn.com/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof/

剑指offer:合并两个有序的链表相关推荐

  1. 剑指Offer——合并两个排序的链表

    1.题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 2.代码实现 1 package com.baozi.offer; 2 3 /** 4 * ...

  2. java listnode 合并链表_剑指offer:合并两个排序的链表(Java)

    1.问题描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 2.思路 方法1:非递归方法 根据题目这个很类似排序中的外排过程,两个数组分别排好序,然后再 ...

  3. 剑指 Offer合并两个排序的链表

    题目描述 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的. 示例1: 输入:1->2->4, 1->3->4 输出:1->1->2-> ...

  4. 剑指Offer25 合并两个排序的链表

    剑指Offer 25. 合并两个排序的链表 剑指Offer 25. 合并两个排序的链表 这题是一道简单题,如果学习了数据结构当中的链表的话,可以很轻松就想出解题过程: /*** Definition ...

  5. 剑指offer-17.合并两个排序的链表

    https://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337?tpId=13&tqId=11169&tPage= ...

  6. 剑指offer 合并2个排序的链表

    题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 解决方案: 用递归的思想. /* public class ListNode {int val; ...

  7. 【LeetCode】剑指 Offer 52. 两个链表的第一个公共节点

    [LeetCode]剑指 Offer 52. 两个链表的第一个公共节点 文章目录 [LeetCode]剑指 Offer 52. 两个链表的第一个公共节点 一.双指针 一.双指针 设 "第一个 ...

  8. 剑指 Offer 52. 两个链表的第一个公共节点

    题目:剑指 Offer 52. 两个链表的第一个公共节点 ,哈哈,我们今天来看一道很简单的题嘛,这是选自剑指 Offer 上的一道题,好了,我们一起来看看题意吧: 考虑到直接复制题目,或者截屏的方式不 ...

  9. 合并两个有序单链表,使得合并后的链表仍然有序

    在<剑指offer>里有一道笔试面试题:合并两个有序单链表,使得合并后的链表仍然有序.书中巧妙的利用了递归方法实现了该函数功能. 显然,利用递归算法能够让代码看起来非常简洁且容易看懂,但如 ...

  10. 剑指offer——面试题57:删除链表中重复的结点

    剑指offer--面试题57:删除链表中重复的结点 Solution1: 删两遍,自己想的破算法.理论上时间复杂度也是O(n)O(n)O(n),并非最优解. /* struct ListNode {i ...

最新文章

  1. tensordot 的源码解读
  2. 电脑f2还原系统步骤_手把手教你如何创建系统还原点,让你的电脑也能时光倒流...
  3. win10水印烦死了_win10系统下word去水印的方法【图文】
  4. flask get 参数_用它 5 分钟以后,我放弃用了四年的 Flask
  5. ThinkPHP验证码和分页
  6. 在计算机上采用线性同余法,随机数生成算法 —— 线性同余法
  7. redisTemplate ping pong
  8. 揭密 HAP 激光雷达的实际性能表现
  9. java 庖丁解牛api_重磅|庖丁解牛之——Flutter for Web
  10. APP测试面试题汇总基础+进阶
  11. 7.3 向量的数量积与向量积
  12. [转载]惯性导航专业相关书籍180多部
  13. 老本拯救计划——联想Ideapad 320S-15IKB笔记本加装SSD教程
  14. 矩阵的最小路径和——动态规划
  15. ITIL学习(六)服务战略之战略制定
  16. 手机通讯录c语言导入手机软件,Total Control软件将手机通讯录导入导出的操作流程介绍...
  17. 快速省时省事的视频转换器
  18. 空中交通系统离我们还有多远
  19. 数据结构c语言描述的习题答案,《数据结构 - C语言描述》习题及答案 耿国华-...
  20. 【opencv+mfc】实现身份证上的身份证号识别

热门文章

  1. Mac中安装git后,终端运行git出错,提示安装Xcode
  2. 理解oauth2.0【转载】
  3. 【面试题41】和为s的两个数字VS和为s的连续整数序列
  4. 基本数据结构----循环链表
  5. 【十五分钟Talkshow】工作流及工作流框架、服务
  6. python内置json模块的作用_json和simplejson Python模块之间有什么区别?
  7. 用神经网络分类一维矩阵
  8. 卷积核的数量是不是越多越好?-分类0,5
  9. 1. 列维过程的混沌及可料表示(2)
  10. 树莓派python3.6 tensorflow_raspberry pi 3B 树莓派 安装tensorflow