首先思路必須要清晰,正常思維是倒著來,先找到尾巴結點,這樣我們發現都需要記錄前驅結點,這樣是很繁瑣的,因為無法知道前驅結點。
所以只能從頭往後逆置,而且逆置是乙個結點乙個結點這樣找的,所以我們需要記錄當前結點的下乙個節點,另外當發生逆置時,是需要知道前面的結點的,因此還需要另外乙個結點記錄前驅結點。
typedef struct slist
}slist;
int slist_reverse(slist *phead)
p = phead;//current前驅結點
q = p->next;//current結點
while (q)
//頭結點變成尾部結點後置null
phead->next->next = null;
phead->next = p;
return 0;
}
帶有頭節點的單鏈表的逆置
include include using namespace std 這是帶有頭節點的單鏈表的逆置 template class type struct p template class type class pc template class type void pc type init tem...
單鏈表的逆置
題目 乙個有頭結點的單鏈表,如何將其逆置。首先定義乙個結構體 typedef int datatype typedef struct node 分析 首先考慮一般情況,設定三個指標,分別表示目前,之前,之後位置。pcur,ppre,pnext的節點。逆置時,將pcur的next指標指向ppre,然後...
單鏈表的逆置
轉至 想法很巧妙,比較省記憶體,不用遞迴,只需要遍歷一次。實現單鏈表的逆置。效果圖 多的就不說了。如下 cpp view plain copy include include typedef struct node node 建立鍊錶 node creatlist void p next null ...