一個環形單鏈表從頭節點head開始不降序,同時由最後的節點指回頭節點。給定這樣一個環形單鏈表的頭節點head和整數num,請生成節點值爲num的新節點,並插入到這個環形鏈表中,保證調整後的鏈表依然有序。node
要求時間複雜度爲O(N),額外空間複雜度爲O(1)。spa
本題不算是很難,可是要注意最後返回頭節點時要考慮到不一樣的狀況。code
有可能要插入的節點的值比頭節點的值還小,此時返回的是要插入的節點,不然返回頭節點。blog
public static Node insertNum(Node head,int num){ Node node=new Node(num); if (head==null) { node.next=node; return node; } Node pre=head; Node cur=head.next; while(cur!=head){ if (pre.value<=num&&cur.value>=num) { break; }else{ pre=cur; cur=cur.next; } } pre.next=node; node.next=cur; return head.value<=num?head:node; }