反轉單鏈表很容易,下面的代碼工作正常。如何反轉一個循環的單鏈表
void reverse_list (SLINK list)
{
SLINK tmp = list->next;
NODE *cur = NULL;
list->next = NULL;
for (; NULL != tmp;)
{
cur = tmp;
tmp = tmp->next;
cur->next = list->next;
list->next = cur;
}
}
如何反轉循環單鏈表?我的代碼適應這種
SLINK reverse_list (SLINK rear)
{
NODE *tag = rear->next;
SLINK tmp = rear->next;
NODE *cur = NULL;
rear->next = NULL;
for (; NULL != tmp;)
{
cur = tmp;
tmp = tmp->next;
cur->next = rear;
rear->next = cur;
}
rear = tag;
return rear;
}
,但它不工作了,我跑這個功能後認爲,循環鏈表將爲非圓形,實際上,後傾倒,我發現它仍然是一個圓形的列表。 這一定是我犯了一個錯誤的邏輯,請給我看看吧。
列表我的測試是一個頭,行CUR->未來=列表 - >下一步;會將第一個節點的下一個指針設置爲NULL –