题目

一个环形链表从头节点开始的顺序为不降序的顺序,也就是如1->2->2->2->3->4这样的链表叫做不降序,同时由最后的节点指回头节点。给定这个环形单链表的头节点head和一个整数num,要生成节点值为num的新节点,并插入环形链表中,保证依然有序。


思路

本题题目不难,但一定要考虑全面

  1. 生成新的节点node,节点值为num
  2. 如果链表为空,node自己指向自己成环形链表,并返回node
  3. 若链表不为空,遍历链表,找到pre<node并且cur>node的位置,并插入,然后返回头节点。这个应该很好理解
  4. 对剩余情况分析,若遍历完,发现不存在步骤3中的情况,也就是node无法插入,此时node应该插入头节点的前面,因为此时的情况下,node的值要么大于链表中的所有值,要么小于所有值
  5. 针对步骤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——向有序的环形单链表中插入新节点相关推荐

  1. Coding Interview Guide -- 向有序的环形单链表中插入新节点

    [题目] 一个环形单链表从头节点head开始不降序,同时由最后的节点指回头节点.给定这样一个环形单链表的头节点head和一个整数num,请生成节点值为num的新节点,并插入到这个环形链表中,保证调整后 ...

  2. 向有环的环形链表中插入新节点

    题目: 一个环形单链表从头节点开始不降序,同时由最后的节点指向头节点.给定这样一个环形单链表的头节点head和一个整数num,请生成节点值为num的新节点,并插入到这个环形链表中,保证调整后的链表依然 ...

  3. 构造数组MaxTree、环形单链表的约瑟夫问题等总结

    1.构造数组的MaxTree 定义二叉树节点如下: public class Node{ public int value; public Node left; public Node right; ...

  4. 左神算法:环形单链表的约瑟夫问题(Java版)

    本题来自左神<程序员面试代码指南>"环形单链表的约瑟夫问题"题目. 题目 据说,著名犹太历史学家 Josephus 有过以下故事: 在罗马人占领乔塔帕特后,39 个犹太 ...

  5. 环形单链表的约瑟夫问题

    输入:一个环形单链表的头结点head和报数的值m. 返回:最后生存下来的节点,且这个节点自己组成环形单向链表,其他节点都删掉. 进阶:如果链表节点数为N,想在时间复杂度O(N)时完成原问题的要求,该如 ...

  6. TypeScript算法专题 - blog9 - 单链表统计 : 返回指定值在单链表结点中的出现次数

    TypeScript数据结构与算法专题 - [单链表9] 单链表统计 : 返回指定值在单链表结点中的出现次数 李俊才 CSDN:jcLee95 邮箱:291148484@163.com 专题目录:ht ...

  7. 链表的特点,单链表的定义、存储结构,单链表的基本操作(判断链表是否为空、销毁链表、清空链表、求链表表长、查找、插入、删除,建立单链表)

    目录 一.链表(链式存储结构)的特点 二.单链表的定义和表示 1.带头结点的单链表 2.单链表的存储结构 三.单链表基本操作的实现 1.单链表的初始化(带头结点的单链表) 2.补充单链表的几个常用简单 ...

  8. 无头结点单链表的逆置_从无头单链表中删除节点及单链表的逆置

    题目: 假设有一个没有头指针的单链表.一个指针指向此单链表中间的一个节点(非第一个节点, 也非最后一个节点).请将该节点从单链表中删除. 解答: 典型的"狸猫换太子", 若要删除该 ...

  9. C语言已排序链表插入新节点保持排序状态(附完整源码)

    C语言已排序链表插入新节点保持排序状态 C语言已排序链表插入新节点保持排序状态完整源码(定义,实现,main函数测试) C语言已排序链表插入新节点保持排序状态完整源码(定义,实现,main函数测试) ...

最新文章

  1. mask rcnn训练自己的数据集
  2. 人脸检测--Recurrent Scale Approximation for Object Detection in CNN
  3. Wrong FS: hdfs://xxx/xxx expected: file:///
  4. Vulnhub靶机渗透之 AI: Web: 1
  5. Mysql数据库,表,字符集,主外键等创建的sql模板
  6. Rocket - tilelink - Atomics
  7. jquery文档加载完毕后执行的几种写法
  8. Web产品的交互说明文档应该怎么写?
  9. 我能够为大家提供什么内容呢?
  10. 科学与技术名词解释计算机病毒,名词解释计算机病毒
  11. Linux常用命令笔记2---文件管理2
  12. AndroidStudio_java.util.ConcurrentModificationException---Android原生开发工作笔记237
  13. python 录制网易云登陆_Python爬虫教程,爬取网易云的音乐
  14. Unity学习笔记(二)——Unity ML-agents安装与配置(1.9.1)
  15. 2021-2027全球与中国创建和销售在线课程平台市场现状及未来发展趋势
  16. htmlcleaner+xpath抓取网页数据
  17. 苹果7p更新系统老是服务器出错,7p为什么无法更新系统 7p无法更新系统怎么办...
  18. NPN与PNP型传感器的区别
  19. vim打开文件时显示行号
  20. 2021年中国太阳能热发电行业发展现状、发展机遇及发展方向分析[图]

热门文章

  1. 无人驾驶汽车系统入门——基于Frenet优化轨迹的无人车动作规划方法
  2. AI一分钟 | 小米智能音箱mini版曝光,或售199元;特朗普被指利用AI竞选成功
  3. Reddit热点 | 想看被打码的羞羞图片怎么办?CNN帮你解决
  4. 取代MybatisPlus?阿里推出了新 ORM 框架!(两者对比参考)
  5. 漫画 | Bug是如何产生的?
  6. 如何提升微服务的幸福感
  7. GitHub 中文文档正式发布
  8. 20强名单公布!2021 OceanBase 数据库大赛决赛酣战在即!
  9. 4000字超干货!《统计学习方法》啃书指南(1)
  10. 进阶必备:CNN经典论文代码复现 | 附下载链接