向有環的環形鍊錶中插入新節點

2021-09-25 11:02:45 字數 866 閱讀 6840

題目:

乙個環形單鏈表從頭節點開始不降序,同時由最後的節點指向頭節點。給定這樣乙個環形單鏈表的頭節點head和乙個整數num,請生成節點值為num的新節點,並插入到這個環形鍊錶中,保證調整後的鍊錶依然有序。

基本思路:

令變數pre= head,cur = head.next,然後令pre和cur同步移動下去,如果遇到pre的值小於等於num並且cur的值大於等於num,則將num產生的節點插到pre和cur的中間即可。

如果轉了一圈都不符合上述的條件,說明num要麼比煉表中最小的值還小,要麼比最大值還大,這時只要將num產生的節點插到頭節點的前面即可,這時要注意頭節點的更新

class node:

def __init__(self,value):

self.value = value

self.next = next

def insertnum(head,num):

node = node(num)

if head == none:

node.next = node

return node

pre = head

cur = head.next

while cur!=head:

if pre.value <= num and cur.value >= num:

break

pre = cur

cur = cur.next

pre.next = node

node.next = cur

if head.value > num:

return head

else:

return node

環形鍊錶中插入新節點

include include include include include using namespace std class list typedef struct list node typedef node link link findnode link head,int num retu...

鍊錶 向有序環形單鏈表中插入新節點

問題描述 向有序環形單鏈表中插入乙個新節點,得到新的環形單鏈表有序,並將頭結點指向最小值 預設當前頭結點指向最小值,環形鍊錶不降序排列 演算法實現 class node public node insertnum node head,int num node pre head node cur he...

向有序環形單鏈表中插入新節點

乙個有序的環形單鏈表,從頭節點開始公升序,同時由最後乙個結點指回頭節點,給定乙個環形鍊錶的頭節點和乙個數值num,建立乙個數值為num的新節點,將該節點插入到環形單鏈表中,要求鍊錶始終有序 這道題就是簡單的遍歷環形單鏈表,然後插入新節點,只需要考慮一些特殊情況即可 鍊錶為空 新節點成環返回 鍊錶正常...