环形链表插值
来源:互联网 发布:大圣数据 同盾科技 编辑:程序博客网 时间:2024/05/15 23:48
有一个整数val,如何在节点值有序的环形链表中插入一个节点值为val的节点,并且保证这个环形单链表依然有序。
给定链表的信息,及元素的值A及对应的nxt指向的元素编号同时给定val,请构造出这个环形链表,并插入该值。
测试样例:
[1,3,4,5,7],[1,2,3,4,0],2
返回:{1,2,3,4,5,7}
package lianbiao;public class huanxinglianbiao {public static void main(String[] args) { int[] A=new int[]{4,8,9}; int[] nxt=new int[]{1,2,0}; int val=3; ListNode a= huanxinglianbiao.insert(A, nxt, val); while(a!=null){ System.out.println(a.val); a=a.next; }} public static class ListNode{ int val; ListNode next=null; ListNode(int val) { this.val=val; } } public static ListNode insert(int[] A, int[] nxt, int val) { // write code here if(A== null || A.length == 0){ ListNode t= new ListNode(val); return t; } ListNode head = new ListNode(A[0]); ListNode r=head; ListNode p; for(int i=0;i<nxt.length-1;i++) { p=new ListNode(A[nxt[i]]); r.next=p; r=p; } ListNode pos = head; ListNode pas = head.next; while(pas!=null){ if(val >=pos.val&&val<= pas.val) break; pos =pas; pas = pas.next; } if(val<head.val){//这里判断的原因是判断val小于所有值 ListNode t= new ListNode(val); t.next=head; return t; } ListNode t= new ListNode(val); t.next =pas; pos.next=t; if(val<head.val)//这里的判断只是前提是val>=最小值 return t; else return head; }}
0 0
- 环形链表插值
- 环形链表插值
- 环形链表插值
- 环形链表插值练习
- 链表9:环形链表插值
- 环形
- 链表算法之环形链表插值
- 环形缓冲区
- 环形矩阵
- 环形缓冲区
- 环形缓冲区
- 环形废墟
- 环形死锁
- 环形缓冲区
- 环形缓冲区
- 环形计数器
- 环形缓冲区
- 环形缓冲区
- HyperLogLog: 解读Cardinality Estimation算法(第一部分:基本概念)
- java适配器设计模式
- HDU 5698 瞬间移动
- Hibernate投影查询
- HDU 5695 Gym Class (拓扑排序+优先队列)
- 环形链表插值
- JS入门--插入JS代码
- PHP数据库连接mysql与mysqli的区别与用法
- MD5加密
- 静态代码检查工具 FindBugs
- R语言---数据导入方式
- HDU 5700 区间交
- struts2与ognl结合实现下载
- 十一、线程锁