普考申論題
106年
[資訊處理] 程式設計概要
第 二 題
二、用 C 語言撰寫一個函式,能反轉一單向鍊結串列(singly linked list):
struct node* reverse(struct node *h)。
單向鍊結串列範例如圖一。(25 分)
函式內請勿複製結點,其中節點的資料結構為
struct node {
int d;
struct node *next;
}
圖一、單向鍊結串列範例
📝 此題為申論題
思路引導 VIP
看到單向鏈結串列的反轉且要求不複製節點,應立即聯想到「原址反轉(in-place reversal)」演算法。使用三個指標(prev、curr、next)配合 while 迴圈,逐步改變節點之間的 next 指向即可完美解題。
🤖
AI 詳解
AI 專屬家教
【解題思路】利用三個指標(prev, curr, next)在原址(in-place)改變節點的指標方向,達成反轉串列的目的。 【程式實作】
▼ 還有更多解析內容