配套的单链表实现在另一篇博客。
因为是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,刚开始看还挺蒙的,画张图帮助理解下。