题目:

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

基本思路:

  令变量pre= head,cur = head.next,然后令pre和cur同步移动下去,如果遇到pre的值小于等于num并且cur的值大于等于num,则将num产生的节点插到pre和cur的中间即可。

  如果转了一圈都不符合上述的条件,说明num要么比链表中最小的值还小,要么比最大值还大,这时只要将num产生的节点插到头节点的前面即可,这时要注意头节点的更新

class node:def __init__(self,value):self.value = valueself.next = nextdef insertNum(head,num):node = node(num)if head == None:node.next = nodereturn nodepre = headcur = head.nextwhile cur!=head:if pre.value <= num and cur.value >= num:breakpre = curcur = cur.nextpre.next = nodenode.next = curif head.value > num:return headelse:return node

向有环的环形链表中插入新节点相关推荐

  1. 链表问题18——向有序的环形单链表中插入新节点

    题目 一个环形链表从头节点开始的顺序为不降序的顺序,也就是如1->2->2->2->3->4这样的链表叫做不降序,同时由最后的节点指回头节点.给定这个环形单链表的头节点h ...

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

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

  3. 在一个递增有序链表中插入新结点并保持链表递增顺序不变

    下列给定程序中已建立一个带头结点的单向链表,链表中各节点按节点数据域中的数据递增有序链接.函数fun的功能是:把形参x的值放入一个新节点并插入列表中使插入后各节点数据域中的数据仍保持递增有序.  请在 ...

  4. 链表相关操作:创建链表、遍历链表、求链表长度、链表中删除一个节点、链表中插入一个节点、反转单链表...

    1 #include<iostream> 2 #include<stdlib.h> 3 4 typedef struct node 5 { 6 int data; 7 stru ...

  5. 【 C 】在单链表中插入一个新节点的尝试(二)

    在上篇博文中:[ C ]在单链表中插入一个新节点的尝试(一),我们最后提到了如果向单链表的开头(起始位置)插入一个节点,上篇博文中给出的程序显然完成不了这任务. 这篇博文中,我们将解决这个问题,给出一 ...

  6. 【 C 】简化双链表插入函数(对在双链表中插入一个新值的简明程序的简化)

    目录 背景 第一个技巧是语句提炼(statement factoring) 第二个简化技巧 最终简化版本 背景 上篇博文:[ C ]在双链表中插入一个新值的简明程序,讲了一个简明的双链表插入函数,那个 ...

  7. 【 C 】在双链表中插入一个新值的简明程序

    上两篇博文讲了如何在单链表中插入一个值: [ C ]在单链表中插入一个新节点的尝试(一) [ C ]在单链表中插入一个新节点的尝试(二) 这篇博文讲解如何在双链表中插入一个值. 单链表的替代方案就是双 ...

  8. 【 C 】在单链表中插入一个新节点的尝试(一)

    根据<C和指针>中讲解链表的知识,记录最终写一个在单链表中插入一个新节点的函数的过程,这个分析过程十分的有趣,准备了两篇博文,用于记录这个过程. 链表是以结构体和指针为基础的,所以结构体和 ...

  9. 数据结构例16.试设计一个算法, 使得在一个有序的单链表中插入一个元素后仍然有序。

    /* 16.试设计一个算法, 使得在一个有序的单链表中插入一个元素后仍然有序. */ # include <iostream> # include <stdlib.h> # i ...

最新文章

  1. 贝壳大数据OLAP平台架构演进
  2. JS判断元素是否在数组内
  3. Python基础知识点分享:OS模块的应用
  4. 剑指offer39 平衡二叉树
  5. Slimer软工课设日报-2016年6月30日
  6. 腾讯看点基于 Flink 的实时数仓及多维实时数据分析实践
  7. Apache Flink 进阶(四):Flink on Yarn / K8s 原理剖析及实践
  8. Linux中的sort排序
  9. JavaScript自学笔记 第5次
  10. 使用Word 中的模板
  11. 在电脑上怎么做报表新手_在电脑上如何制作表格_电脑制作表格的步骤教程-系统城...
  12. IEEE会议论文批量下载的方法
  13. vsCode 快速生成vue 模板
  14. dfs-placing apples
  15. win10服务器系统进不去怎么办,win10开机进不去系统怎么办。
  16. RFID卡片的扇区与块地址的关系
  17. 基于K-Means的文本聚类
  18. SyntaxError: (unicode error) ‘utf-8‘ codec can‘t decode byte 0xca in position 0: invalid continuati
  19. java基础:注解的定义与使用
  20. 狂神springboot

热门文章

  1. (Builder)建造者模式的Java实现
  2. XML::Simple与Data::Dumper在Perl中的使用
  3. mybatis中${}和#{}的区别
  4. DVWA手记——取消登录
  5. Lync客户端导入联系人
  6. python基础学习[python编程从入门到实践读书笔记(连载五)]:数据可视化项目第16章
  7. win10系统运行python虚拟环境执行ll_env\Scripts\activate : 无法加载文件的解决方法(亲测有效)
  8. 算法提高课-搜索-DFS之搜索顺序-AcWing 1117. 单词接龙:dfs
  9. Linux 性能分析工具总结
  10. MySQL中的Text类型