public ListNode insert(ListNode node, int x) {
ListNode newNode = new ListNode(x);
if (node == null) {
newNode.next = newNode;
return newNode;
}
ListNode cur = node;
do{
if (x <= cur.next.val && x > cur.val) break;
if ((cur.val > cur.next.val) && (x <= cur.next.val || x > cur.val)) break;
cur = cur.next;
}while (cur != node)
newNode.next = cur.next;
cur.next = newNode;
return newNode;
}