zoukankan      html  css  js  c++  java
  • 栈和队列----向有序的环形单链表中插入新节点

    向有序的环形单链表中插入新节点

      

      一个环形链表从头节点开始不会降序,同时最后的节点指向头节点。给定一个环形单链表的头节点head和一个整数num,生成新节点并将其插入到环形链表中,保证插入后的链表仍然有序。

     

    package com.test;
    
    import com.test.ListNode;
    
    /**
     * Created by Demrystv.
     */
    public class InsertNewNodeInCircle {
    
        /*
        1.如果链表为空,那么就直接新建一个节点,返回这个节点
        2. 如果链表不为空,那么就定义两个变量 pre 和 cur,保证新建的节点在pre和cur之间
        3. 当然存在特殊情况,新建的节点比任意一个节点都大 或者  比任意一个节点都小
         */
        public ListNode insertNode(ListNode head, int num){
    
            ListNode node = new ListNode(num);
    
            if (head == null){
                node.next = node;
                return node;
            }
    
            ListNode pre = head;
            ListNode cur = head.next;
            while (cur != null){
                if (pre.val <= num && cur.val >= num){
                    break;
                }
                pre = cur;
                cur = cur.next;
            }
    
            //针对新建的节点比任意一个节点都大 或者  比任意一个节点都小
            pre.next = node;
            node.next = cur;
            return head.val < num ? head : node;
    
        }
    
    
    }
  • 相关阅读:
    MySQL wrapped 连接池
    学习 memcache 心得
    memcachedb 加 memcached engine无法提高 示例检索的查询速度
    memcached+Mysql(主从) php 编程
    动态设置select与radio的默认值
    JSTL 自定义
    坦克大战 Java版
    给超链接加onclick事件
    图片查看器C#
    备份删除还原数据库
  • 原文地址:https://www.cnblogs.com/Demrystv/p/9364210.html
Copyright © 2011-2022 走看看