单链表反转

配套的单链表实现在另一篇博客。

因为是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,刚开始看还挺蒙的,画张图帮助理解下。

posted @ 2019-10-19 22:28  Aatr0xd  阅读(17)  评论(0编辑  收藏  举报