Insert Into Cycle Linked List
题目
插入一个新的节点到一个sorted cycle linkedlist(升序),返回新的节点。给的list节点不一定是最小节点。
所以需要考虑两种情况:
1,正常插入在两个节点中间;
2,插入在最大最小即排序起始处。
注意:可能list中含有duplicate!!!
public class LinkedListInsert {
    public ListNode Solution(ListNode head, int val) {
        
        if (head == null) {
            ListNode node = new ListNode(val);
            node.next = node;
            return node;
        }
        ListNode cur = head;
        do {
            
            if (val >= cur.val && val <= cur.next.val)
                break;
            
            if (cur.val > cur.next.val && (val < cur.next.val || val > cur.val))
                break;
            
            cur = cur.next;
        } while (cur != head);
         
        
        ListNode newNode = new ListNode(val);
        newNode.next = cur.next;
        cur.next = newNode;
        return newNode;
    }
}