题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

A:若链表1为空,则合并后的链表头结点为pHead2;若链表2为空,则合并后的链表头结点为pHead1

   创建ret_Head作为合并链表的新头结点,比较pHead1和pHead2,ret_Head指向小的数,ret_Head->next指向两个链表中下一个最小的数 ====> 递归

A:同样的,递归也是一种栈结构,所以也可以用栈来解决这个问题

  

/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
{
if(pHead1 == nullptr)
{
return pHead2;
}
if(pHead2 == nullptr)
{
return pHead1;
}
ListNode *ret_Head = nullptr; if(pHead1->val < pHead2->val)
{
ret_Head = pHead1;
ret_Head->next = Merge(pHead1->next,pHead2);
}
else
{
ret_Head = pHead2;
ret_Head->next = Merge(pHead1,pHead2->next);
}
return ret_Head;
}
};

  

相关题目:

  每K个一组反转链表 :给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序。                          

            https://www.nowcoder.com/practice/a632ec91a4524773b8af8694a51109e7            
               说明:
            1. 你需要自行定义链表结构,将输入的数据保存到你的链表中;
            2. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换;

            3. 你的算法只能使用常数的额外空间。

  编程实现单链表的逆转函数 :实现单链表的逆转函数,输入一个链表,反转链表后,返回翻转之后的链表。

  LRU cache :设计一个数据结构,实现LRU Cache的功能(Least Recently Used – 最近最少使用缓存)。它支持如下2个操作: get 和 put。

        https://www.nowcoder.com/practice/3da4aeb1c76042f2bc70dbcb94513338

            int get(int key) – 如果key已存在,则返回key对应的值value(始终大于0);如果key不存在,则返回-1。

         void put(int key, int value) – 如果key不存在,将value插入;如果key已存在,则使用value替换原先已经存在的值。如果容量达到了限制,LRU Cache需要在插入新元素之前,将最近最少使用的元素删除。

         请特别注意“使用”的定义:新插入或获取key视为被使用一次;而将已经存在的值替换更新,不算被使用。 限制:请在O(1)的时间复杂度内完成上述2个操作。

【剑指Offer】【链表】合并两个排序的链表的更多相关文章

  1. 《剑指offer》 合并两个排序的链表

    本题来自<剑指offer> 合并两个排序的链表 题目: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 思路: A:采用递归的方式(C++ C ...

  2. 剑指Offer:合并两个排序的链表【25】

    剑指Offer:合并两个排序的链表[25] 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 题目分析 每次都是比较箭头节点,把小节点连接到已经合 ...

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

    剑指 Offer 25. 合并两个排序的链表 Offer 25 该问题的原型就是多项式的合并. 实现较简单,没有特殊需要注意的问题. package com.walegarrett.offer; /* ...

  4. 【剑指Offer】合并两个排序的链表 解题报告(Python)

    [剑指Offer]合并两个排序的链表 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://www.nowcoder.com/ta/coding-interview ...

  5. [剑指offer]25.合并两个排序的链表(迭代+递归)

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

  6. 【Java】 剑指offer(25) 合并两个排序的链表

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照 ...

  7. Go语言实现:【剑指offer】合并两个排序的链表

    该题目来源于牛客网<剑指offer>专题. 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. Go语言实现: //递归 func merge(l ...

  8. 《剑指offer》合并两个排序的链表

    一.题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 二.输入描述 两个递增排序的链表 三.输出描述 合并成一个递增排序的链表 四.牛客网提供的框 ...

  9. 【力扣】剑指 Offer 25. 合并两个排序的链表

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

  10. 剑指Offer 16. 合并两个排序的链表 (链表)

    题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 题目地址 https://www.nowcoder.com/practice/d8b6b4358 ...

随机推荐

  1. 十二、21.提交本地代码到Git仓库并推送到码云

    查看分支 运行git add . 把所有修改过后文件添加到暂存区 git commit 把当前所有的代码提交到rights分支 加-m加一个消息 到此所有的功能模块都已经提交到了rights这个分支里 ...

  2. goalng 将字符串转化成整数后取余

    package main import ( "fmt" "github.com/google/uuid" "hash/fnv" ) func ...

  3. Angular单页应用程式 (SPA)+Azure AD重新导向登入

    一.app.module.ts中设定应用程式 1.将MSAL Angular相关设置封装为auth.module.ts import { NgModule } from '@angular/core' ...

  4. 宿主机通过vmware创建的kali虚拟机连接redis,sftp等功能

    介绍 黑客专用的linux kali, 下载后即包含很多黑客工具,对于我这样的菜鸡,很感动的就是里面包含了最新版的redis,java,mysql等工具.自带不错的界面省事 kali官网: https ...

  5. js复制图片

    ^(* ̄(oo) ̄)^:可以复制到微信和钉钉,文件夹中不可以复制 <!DOCTYPE html> <html lang="en"> <head> ...

  6. C/C++中的可变参数

    所需的函数参数不固定,需要用到带有可变参数的函数,类似printf();项目中需要打印信息等也会用到带可变参数的函数. C语言标准库的头文件 #include<stdarg.h>包含一组能 ...

  7. OS复盘

    OS复盘 OS课设已经结课一段时间了,我也从其他课程中抽身出来,有了一段能够好好反思的时光. 说实话,完成OS课设的过程是很痛苦的,指导书蜻蜓点水.注释模棱两可.各种函数和文件调用杂乱无章.每次在完成 ...

  8. 从傻逼才做的大创开始的NLP学习

    先实名辱骂一下保加利亚电信的毕业生,留个源码,源码里把自己训好的模型删了,洗好的文本删了,什么都给删了,白茫茫一片真他妈干净. 简单说说目前在做的这个东西,姑且算是个项目吧: 给出一个问句,通过实体识 ...

  9. 使用tkinter开发的一款登录和注册图形化界面

    目录 项目介绍 登录功能 登录界面展示 登录主要功能 登录部分源码 注册功能 注册界面展示 注册主要功能 注册部分源码 源码地址 项目介绍 使用tkinter开发的一款登录和注册图形化界面 使用tki ...

  10. java-文件IO常用操作对比

    文件IO中,常用的方法如下方代码中的readMethod1~8方法所示. 测试了2.5M读100次.100M读3次.250M读1次三种情况,耗时(单位:毫秒)如下: 2.5M读100次 2.5M读10 ...