免費開始練習
普考申論題 114年 [資訊處理] 程式設計概要

第 五 題

單鏈結串列(Singly Linked List) 特點是鏈結串列的連結方向為單向,對
單鏈結串列的訪問要通過從頭部開始,依序往下讀取,每個節點(node)
包含兩部分:存儲數據的資料(data)和指向下一個節點的指標(pointer),
節點定義如下:
struct Node {
}
int data;
struct Node *next;
單鏈結串列中的所有節點通過指標串聯,最後一個節點的指標指向空值
(null),表示單鏈結串列結尾。請使用 Java 或C++實作一完整程式,通
過從頭部(head)開始,依序往下讀取,訪問一單鏈結串列操作,輸出
單鏈結串列中節點個數,若單鏈結串列中不存在任何節點,為一個空鏈
結串列,則輸出-1。(20分)
📝 此題為申論題

思路引導 VIP

遇到鏈結串列走訪題型,首要確認節點結構與終止條件。此題關鍵在於先判斷 head 是否為空以滿足特例輸出 -1,接著利用 while 迴圈與 current = current->next 指標移動技巧走訪全串列並進行計數。

🤖
AI 詳解 AI 專屬家教

【解題關鍵】利用指標變數從 head 開始依序走訪並計數,特別注意空鏈結串列的邊界條件判斷。 【完整程式碼實作 (C++)】

▼ 還有更多解析內容
📝 單鏈結串列基礎操作
💡 掌握單向串列結構定義、迴圈走訪技術與空串列邊界處理。

🔗 單鏈結串列計數走訪流程

  1. 1 邊界判斷 — 判斷 head 是否為 null,若是則輸出 -1 並結束。
  2. 2 初始化 — 設定計數器為 0,暫存指標指向 head。
  3. 3 迴圈走訪 — 當目前指標不為 null 時,進入計數循環。
  4. 4 位移累加 — 計數器加 1,將指標移至下一個節點(next)。
  5. 5 結果輸出 — 指標指向 null 後離開迴圈,輸出計數值。
🔄 延伸學習:延伸學習:走訪的時間複雜度為 O(n),空間複雜度為 O(1)。
🧠 記憶技巧:指標起點頭,非空往後走,遇到空停手,空列負一發。
⚠️ 常見陷阱:程式實作時最常遺漏空串列的判斷,或在迴圈中忘記移動指標(next)導致無窮迴圈。
雙向鏈結串列 循環鏈結串列 指標與記憶體配置

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

考前複習神器,一眼掌握重點