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

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个操作。

最新文章

  1. 递归一题总结(OJ P1117倒牛奶)
  2. 【转】关于Class.forName(“com.mysql.jdbc.Driver”)
  3. 矩阵的QR分解
  4. spring redis整合
  5. NSArray的排序
  6. css块级元素、行内元素
  7. jbpm4 回退、会签、撤销、自由流
  8. 跑马灯js
  9. 自定义textView的高度
  10. 最少换乘(Dijkstra)
  11. 付款前.检查状态.防止重复付款,需要ajax设置为同步,等待ajax返回结果再使用
  12. (原创)Python 自动化测试框架详解
  13. [转载] 一致性hash算法释义
  14. SQL反模式学习笔记13 使用索引
  15. 【Android端】【日志收集上报SDK相关内容测试的方案梳理总结】
  16. 【Java每日一题】20170120
  17. Nio再学习之NIO的buffer缓冲区
  18. Winhex数据恢复笔记(五)
  19. IdentityServer4-前后端分离的授权验证(六)
  20. Xamarin Mono Android实现“再按一次退出程序”

热门文章

  1. SpringBoot的使用
  2. 前端如何给bearer token传值
  3. Docker部署Minio文件系统
  4. K8S-kubeadm集群安装
  5. 【SSO单点系列】(3):CAS4.0 之自定义返回登出页面
  6. PK获取面积
  7. 使用NSIS打包软件
  8. docker脚本自动化安装
  9. WPF学习笔记-数据采集与监控项目03-课程总览(ItemsControl控件)
  10. 成品直播源码推荐,java 实现邮件服务