码迷,mamicode.com
首页 > 其他好文 > 详细

栈和队列----向有序的环形单链表中插入新节点

时间:2018-07-25 11:29:14      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:insert   之间   val   imp   col   --   队列   create   pre   

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

  

  一个环形链表从头节点开始不会降序,同时最后的节点指向头节点。给定一个环形单链表的头节点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;

    }


}

 

栈和队列----向有序的环形单链表中插入新节点

标签:insert   之间   val   imp   col   --   队列   create   pre   

原文地址:https://www.cnblogs.com/Demrystv/p/9364210.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!