status A(LinkList L) { // L 無頭節點
if (L && L->next) {
Q = L; L = L->next; p = L;
while (p->next) p = p->next;
p->next = Q; Q->next = NULL;
}
return OK;
}
Q = L 保存原首節點L = L->next 將鏈表頭指針後移一位(新首節點)p = L 從新首節點開始遍歷while (p->next) p = p->next; 找到最後一個節點p->next = Q 將原首節點接在尾部Q->next = NULL 原首節點變為新尾節點,next 置空函數執行後,單鏈表的第一個節點變為最後一個節點,其餘節點順序不變。例如 1→2→3→4 變為 2→3→4→1。
注意:傳入的是指針副本,函數內修改 L 不會影響調用者的頭指針,調用者需自行更新頭指針或改用雙指針/引用參數。