剑指offer系列14---合并两个升序链表
14【题目】输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
* 【思路】依次比较两个链表头指针,小者作为合并后的头指针,依次比较,使用递归。
1 package com.exe3.offer; 2 3 /** 4 * 14【题目】输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 5 * 【思路】依次比较两个链表头指针,小者作为合并后的头指针,依次比较,使用递归。 6 * @author WGS 7 * 8 */ 9 public class MergeLinkList { 10 public static class LinkNode{ 11 int val; 12 LinkNode next=null; 13 public LinkNode(){ 14 15 } 16 public LinkNode(int n){ 17 this.val=n; 18 } 19 } 20 public LinkNode getMergeLinkList(LinkNode headnode1,LinkNode headnode2){ 21 if(headnode1==null){ 22 return headnode2; 23 }else if(headnode2==null){ 24 return headnode1; 25 } 26 LinkNode headNodeOfMergeLinkList=null; 27 28 if(headnode1.val<headnode2.val){ 29 headNodeOfMergeLinkList=headnode1; 30 headNodeOfMergeLinkList.next=getMergeLinkList(headnode1.next,headnode2); 31 }else{ 32 headNodeOfMergeLinkList=headnode2; 33 headNodeOfMergeLinkList.next=getMergeLinkList(headnode1,headnode2.next); 34 } 35 36 37 38 39 return headNodeOfMergeLinkList; 40 41 42 } 43 public static void main(String[] args){ 44 LinkNode node11=new LinkNode(1); 45 LinkNode node12=new LinkNode(3); 46 LinkNode node13=new LinkNode(5); 47 LinkNode node14=new LinkNode(7); 48 node11.next=node12;node12.next=node13;node13.next=node14; 49 50 LinkNode node21=new LinkNode(); 51 LinkNode node22=new LinkNode(); 52 LinkNode node23=new LinkNode(); 53 LinkNode node24=new LinkNode(18); 54 node21.next=node22;node22.next=node23;node23.next=node24; 55 56 LinkNode node=new MergeLinkList().getMergeLinkList(node11, node21); 57 while(node!=null){ 58 System.out.println(node.val); 59 node=node.next; 60 } 61 } 62 63 64 65 66 67 68 69 70 71 }
转载于:https://www.cnblogs.com/noaman/p/5415942.html
剑指offer系列14---合并两个升序链表相关推荐
- LeetCode 21.23.剑指 Offer II 078. 合并两个有序链表 | C语言版
LeetCode 21. 合并两个有序链表 | C语言版 LeetCode 21. 合并两个有序链表 题目描述 解题思路 思路一:使用栈 代码实现 运行结果 参考文章: 思路二:减少遍历节点数 代码实 ...
- 剑指offer系列-09.用两个栈设计队列
剑指offer系列第09题.用两个栈设计队列 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead , 分别完成在队列尾部插入整数和在队列头部删除整 ...
- 剑指offer系列-06.从尾到头打印链表
剑指offer系列第06题.从尾到头打印链表 题目描述: 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 示例 1:输入:head = [1,3,2] 输出:[2,3,1] /* ...
- leetcode 打印_剑指 Offer 总结 - leetcode 剑指offer系列
剑指 Offer 系列完结撒花!! 本篇文章是对整个系列的精华总结, 对系列的每篇文章进行了分类, 并用一句话概括每道题的思路, 方便大家理解和记忆, 当然也包含原文完整链接供大家参考 总的来说, 写 ...
- 数组中其余的排除_[leetcode 剑指offer系列] 面试题04. 二维数组中的查找
题目难度: 简单 原题链接 今天继续更新剑指 offer 系列, 这道题的优化空间非常大, 个人感觉很适合作为面试题, 值得一做. 大家在我的公众号"每日精选算法题"中的聊天框中回 ...
- 在要求输入数字处找到非数字字符_剑指 Offer 67. 把字符串转换成整数 leetcode 剑指offer系列...
点击专辑上方"蓝字"关注我吧 题目难度: 中等 原题链接[1] 今天继续更新剑指 offer 系列, 老样子晚上 6 点 45 分准时更新公众号 每日精选算法题, 大家记得关注哦~ ...
- 剑指offer python实现_剑指offer系列python实现 日更(三)
今天来讲讲斐波那契数列和它的孩子们~先讲个冷笑话:今天来一盘斐波那契炒饭,它等于昨天的炒饭加上前天的炒饭 7.斐波那契数列 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第 ...
- 剑指offer系列-03.数组中的重复数字
剑指offer系列第03题.数组中的重复数字 找出数组中重复的数字.在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内. 数组中某些数字是重复的,但不知道有几个数字重复了,也不 ...
- 剑指offer系列-24.反转链表
剑指offer系列第24题.反转链表 题目描述: 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. 示例:输入: 1->2->3->4->5->N ...
最新文章
- Pytorch Merge操作
- scala初学之helloWorld
- 使用SharpKit构建客户端Grid控件
- C#技术分享【PDF转换成图片——10种方案】(2013-07-25重新整理)
- 经验模态分解(Empirical Mode Decomposition ,EMD)特征提取及其原理
- l2tp 服务器错误 741
- Linux使用PulseAudio设置音频card的默认profile
- MongoDB windows 局域网连接
- 服务器带外管理默认账号
- Angular2 Directive讲解
- 关于De-pCode在线工具失效的问题
- Xming(windows下的X Server)的使用,在windows下运行你的终端和所有基于XWindow的程序
- 剑指offer_4 二叉树遍历
- ​LeetCode刷题实战276:栅栏涂色
- 旧金山大学的算法可视化学习教程 赞的教程,将抽象的算法可视化,易于理解...
- css 背景效果_前端教程 :20个CSS的常用套路附demo的效果实现与源码
- (一)立创EDA的安装
- 如何在JavaScript中循环遍历JSON响应?
- 安装mysql卡在等待页面_MySQL安装到最后一步未响应的五种解决方法
- 使用layui模板填充页面数据
热门文章
- windows下使用word2vec训练维基百科中文语料全攻略!(三
- linux 内核模块开发,linux内核模块开发(示例代码)
- dev调试时无法进入下一步_Linux开源实时EtherCAT主站操作系统安装和调试笔记
- centos 配置mysql环境变量_Centos7.1部署mysql-5.6.34(笔记)
- java 内存分析 ibm_IBM内存检测工具(IBM Thread and Monitor Dump Analyzer for Java)
- Windows 安装 Redis
- php 三色排序,一个数组中只有0,1,2三种元素,要求对这样的数组进行排序,一个数组中只有0,1,2三种元素,要求对这样的数组进行排序,第2章 排序 | | 第17节 三色排序练习题...
- 设备上专用计算机管理办法,计算机设备管理办法
- JS-面向对象---属性的特性 / 修改属性的特性
- 如何判断链表有环、如何判断两个链表相交