首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

單鏈表函數功能解析:將首節點移至尾部

     編輯:程式設計綜合問答

代碼

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;
}

功能詳解

  1. Q = L 保存原首節點
  2. L = L->next 將鏈表頭指針後移一位(新首節點)
  3. p = L 從新首節點開始遍歷
  4. while (p->next) p = p->next; 找到最後一個節點
  5. p->next = Q 將原首節點接在尾部
  6. Q->next = NULL 原首節點變為新尾節點,next 置空

效果

函數執行後,單鏈表的第一個節點變為最後一個節點,其餘節點順序不變。例如 1→2→3→4 變為 2→3→4→1。

注意:傳入的是指針副本,函數內修改 L 不會影響調用者的頭指針,調用者需自行更新頭指針或改用雙指針/引用參數。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved