package com.interview.books.leetcode; import com.interview.leetcode.utils.ListNode; /** * Created_By: stefanie * Date: 14-12-10 * Time: 下午9:37 */ public class LCS1_SortedCycleListInsertion { public ListNode insert(ListNode head, int value){ if(head == null) return null; ListNode node = head; if(value < node.val){ while(node.next != head) node = node.next; } else { while(node.next != head && node.next.val < value) node = node.next; } ListNode newNode = new ListNode(value); newNode.next = node.next; node.next = newNode; return head; } public static void main(String[] args){ ListNode head = ListNode.createList(new int[]{1,2,3,4,5,6,7,8}); ListNode tail = head; while(tail.next != null) tail = tail.next; tail.next = head; LCS1_SortedCycleListInsertion inserter = new LCS1_SortedCycleListInsertion(); inserter.insert(head, 5); print(head); inserter.insert(head, 10); print(head); inserter.insert(head, 0); print(head); head = ListNode.createList(new int[]{3}); head.next = head; inserter.insert(head, 5); print(head); } public static void print(ListNode head){ ListNode node = head; System.out.print(node.val + ", "); node = node.next; while(node != head){ System.out.print(node.val + ", "); node = node.next; } System.out.println(); } }