配套的單鏈表實現在另一篇博客。
因爲是C#來解決的嘛,這個問題解決的話,所以用While循環和三個引用來做。
/// <summary>
/// 反轉鏈表
/// </summary>
public Link<T> ReversalLinkList()
{
Link<T> curr = Head.Next;
Link<T> next = null;
Link<T> nextnext = null;
//當這是一個空鏈表的情況下
if (curr.Next == null)
{
return Head;
}
//當不是空鏈表的情況下
while (curr.Next != null)
{
next = curr.Next; //1
nextnext = next.Next; //2
next.Next = Head.Next; //3
Head.Next = next; //4
curr.Next = nextnext; //5
}
return Head;
}
關鍵步驟標了號,先看1,2,再想3,4,最後再看5,剛開始看還挺蒙的,畫張圖幫助理解下。