链表问题18——向有序的环形单链表中插入新节点
题目
一个环形链表从头节点开始的顺序为不降序的顺序,也就是如1->2->2->2->3->4这样的链表叫做不降序,同时由最后的节点指回头节点。给定这个环形单链表的头节点head和一个整数num,要生成节点值为num的新节点,并插入环形链表中,保证依然有序。
思路
本题题目不难,但一定要考虑全面
- 生成新的节点node,节点值为num
- 如果链表为空,node自己指向自己成环形链表,并返回node
- 若链表不为空,遍历链表,找到pre<node并且cur>node的位置,并插入,然后返回头节点。这个应该很好理解
- 对剩余情况分析,若遍历完,发现不存在步骤3中的情况,也就是node无法插入,此时node应该插入头节点的前面,因为此时的情况下,node的值要么大于链表中的所有值,要么小于所有值
- 针对步骤4中的情况,若node的值是最大的,返回头节点,否则返回node。
源码
public static class Node{public int value;public Node next;public Node(int data){this.value=data;}
}
public Node insertNum(Node head,int num){Node node=new Node(num);if(head==null){node.next=node;return node;}Node pre=head;Node cur=head.next;while(cur!=head){if(pre.value<=node.value&&cur.value>=node.value){break;}pre=curcur=cur.next;}pre.next=node;node.next=cur;return head.value<node.value?head:node;
}
链表问题18——向有序的环形单链表中插入新节点相关推荐
- Coding Interview Guide -- 向有序的环形单链表中插入新节点
[题目] 一个环形单链表从头节点head开始不降序,同时由最后的节点指回头节点.给定这样一个环形单链表的头节点head和一个整数num,请生成节点值为num的新节点,并插入到这个环形链表中,保证调整后 ...
- 向有环的环形链表中插入新节点
题目: 一个环形单链表从头节点开始不降序,同时由最后的节点指向头节点.给定这样一个环形单链表的头节点head和一个整数num,请生成节点值为num的新节点,并插入到这个环形链表中,保证调整后的链表依然 ...
- 构造数组MaxTree、环形单链表的约瑟夫问题等总结
1.构造数组的MaxTree 定义二叉树节点如下: public class Node{ public int value; public Node left; public Node right; ...
- 左神算法:环形单链表的约瑟夫问题(Java版)
本题来自左神<程序员面试代码指南>"环形单链表的约瑟夫问题"题目. 题目 据说,著名犹太历史学家 Josephus 有过以下故事: 在罗马人占领乔塔帕特后,39 个犹太 ...
- 环形单链表的约瑟夫问题
输入:一个环形单链表的头结点head和报数的值m. 返回:最后生存下来的节点,且这个节点自己组成环形单向链表,其他节点都删掉. 进阶:如果链表节点数为N,想在时间复杂度O(N)时完成原问题的要求,该如 ...
- TypeScript算法专题 - blog9 - 单链表统计 : 返回指定值在单链表结点中的出现次数
TypeScript数据结构与算法专题 - [单链表9] 单链表统计 : 返回指定值在单链表结点中的出现次数 李俊才 CSDN:jcLee95 邮箱:291148484@163.com 专题目录:ht ...
- 链表的特点,单链表的定义、存储结构,单链表的基本操作(判断链表是否为空、销毁链表、清空链表、求链表表长、查找、插入、删除,建立单链表)
目录 一.链表(链式存储结构)的特点 二.单链表的定义和表示 1.带头结点的单链表 2.单链表的存储结构 三.单链表基本操作的实现 1.单链表的初始化(带头结点的单链表) 2.补充单链表的几个常用简单 ...
- 无头结点单链表的逆置_从无头单链表中删除节点及单链表的逆置
题目: 假设有一个没有头指针的单链表.一个指针指向此单链表中间的一个节点(非第一个节点, 也非最后一个节点).请将该节点从单链表中删除. 解答: 典型的"狸猫换太子", 若要删除该 ...
- C语言已排序链表插入新节点保持排序状态(附完整源码)
C语言已排序链表插入新节点保持排序状态 C语言已排序链表插入新节点保持排序状态完整源码(定义,实现,main函数测试) C语言已排序链表插入新节点保持排序状态完整源码(定义,实现,main函数测试) ...
最新文章
- mask rcnn训练自己的数据集
- 人脸检测--Recurrent Scale Approximation for Object Detection in CNN
- Wrong FS: hdfs://xxx/xxx expected: file:///
- Vulnhub靶机渗透之 AI: Web: 1
- Mysql数据库,表,字符集,主外键等创建的sql模板
- Rocket - tilelink - Atomics
- jquery文档加载完毕后执行的几种写法
- Web产品的交互说明文档应该怎么写?
- 我能够为大家提供什么内容呢?
- 科学与技术名词解释计算机病毒,名词解释计算机病毒
- Linux常用命令笔记2---文件管理2
- AndroidStudio_java.util.ConcurrentModificationException---Android原生开发工作笔记237
- python 录制网易云登陆_Python爬虫教程,爬取网易云的音乐
- Unity学习笔记(二)——Unity ML-agents安装与配置(1.9.1)
- 2021-2027全球与中国创建和销售在线课程平台市场现状及未来发展趋势
- htmlcleaner+xpath抓取网页数据
- 苹果7p更新系统老是服务器出错,7p为什么无法更新系统 7p无法更新系统怎么办...
- NPN与PNP型传感器的区别
- vim打开文件时显示行号
- 2021年中国太阳能热发电行业发展现状、发展机遇及发展方向分析[图]