循环有序链表的插入
时间:2019-11-11
本文章向大家介绍循环有序链表的插入,主要包括循环有序链表的插入使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
给定循环升序列表中的一个点,写一个函数向这个列表中插入一个新元素,使这个列表仍然是循环升序的。给定的可以是这个列表中任意一个顶点的指针,并不一定是这个列表中最小元素的指针。
如果有多个满足条件的插入位置,你可以选择任意一个位置插入新的值,插入后整个列表仍然保持有序。
如果列表为空(给定的节点是 null),你需要创建一个循环有序列表并返回这个点。否则。请返回原先给定的节点。
下面的例子可以帮你更好的理解这个问题:
在上图中,有一个包含三个元素的循环有序列表,你获得值为 3 的节点的指针,我们需要向表中插入元素 2。
新插入的节点应该在 1 和 3 之间,插入之后,整个列表如上图所示,最后返回节点 3。
解答1:
public static Node insert(Node head, int insertVal) { /*新节点*/ Node ins = new Node(insertVal); /*头节点是空,构造单节点循环链表返回*/ if (null == head) { ins.next = ins; return ins; } /*记录最大值节点*/ Node max = head; Node temp = head; while (temp.next != head) { Node next = temp.next; /*寻找符合升序条件的节点*/ if (temp.val <= insertVal && insertVal <= next.val) { temp.next = ins; ins.next = next; return head; } temp = next; if (temp.val >= max.val) { max = temp; } } if (temp.val <= insertVal && insertVal <= temp.next.val) { Node next = temp.next; temp.next = ins; ins.next = next; return head; } /*没有满足升序的节点,将insertVal插入到最大值节点后面*/ Node next = max.next; max.next = ins; ins.next = next; return head; }
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/insert-into-a-cyclic-sorted-list
原文地址:https://www.cnblogs.com/wuyouwei/p/11834224.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 物联网云智能开发—MosQuitto服务器的安装 测试 订阅&发布及加密教程
- MongoDB的CRUD操作讲解-3-update&remove
- python数据结构
- MongoDB的CRUD操作讲解-1-insert
- MongoDB入门
- 算法—判断字符串是否为IP地址
- 博客整体风格更改
- centos6.6下安装MongoDB3.x
- Goland 中配置 go-lint 代码检查
- JetBrains注册码计算(IntelliJ IDEA 15.0注册码激活)
- Java文本框内文字显示不同颜色、字号等属性【函数调用一键实现】
- PLSQL-sql操作&判断循环
- Python 技术篇-用PIL库实现彩色图片转化为黑白图片
- PLSQL-游标
- 超详细的Java容器、面板及四大布局管理器应用讲解!