/**
* @author xnl
* @Description:
* @date: 2022/6/18 23:24
*/
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
Node node = new Node(3);
Node next = new Node(4);
Node next2 = new Node(1);
node.next = next;
next.next = next2;
next2.next = node;
// Node node = new Node(1);
// node.next = node;
solution.insert(node, 2);
System.out.println(node.val);
}
/**
* @param head
* @param insertVal
* @return
*/
public Node insert(Node head, int insertVal) {
Node node = new Node(insertVal);
if (head == null) {
node.next = node;
return node;
}
if (head.next == head) {
head.next = node;
node.next = head;
return head;
}
Node cur = head, next = head.next;
while (head != next){
if (insertVal >= cur.val && insertVal <= next.val){
break;
}
// 证明cur 是最大值,下一个是最小值
if (cur.val > next.val){
if (insertVal > cur.val || insertVal < next.val){
break;
}
}
cur = cur.next;
next = next.next;
}
cur.next = node;
node.next = next;
return head;
}
}
class Node {
public int val;
public Node next;
public Node() {}
public Node(int _val) {
val = _val;
}
public Node(int _val, Node _next) {
val = _val;
next = _next;
}
};
06-18
74
06-18
193
03-11
687
09-27
266