單鏈表反轉

配套的單鏈表實現在另一篇博客。

因爲是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,剛開始看還挺蒙的,畫張圖幫助理解下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章