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;
    
        }
    
    
    }
  • 相关阅读:
    UVA11825 Hackers' Crackdown
    UVA 11346 Probability
    Codeforces 12 D Ball
    bzoj 4766: 文艺计算姬
    Codeforces 757 F Team Rocket Rises Again
    [HAOI2011] problem C
    Atcoder 3857 Median Sum
    bzoj4399 魔法少女LJJ
    bzoj2638 黑白染色
    bzoj4197 [Noi2015]寿司晚宴
  • 原文地址:https://www.cnblogs.com/Demrystv/p/9364210.html
Copyright © 2011-2022 走看看