C# 数据结构 单链表反转

首先,单链表本身是一个递归定义的数据结构,也就是说,单链表中每个节点指向的依然是一个单链表,所以可以使用递归的特性来完成这个问题:

        static Node ReverseLink(Node list)
        {
            if (list.next == null)
            {
                return list;
            }
            else
            {
                Node n = ReverseLink(list.next);
                list.next.next = list;
                list.next = null;
                return n;
            }
        }

list.next.next = list;
list.next = null;

这两行是最终实现反转的地方,这里的第一行将当前节点的下一个节点的指针指向自己,然后将当前节点到下一个节点的断开,从而实现反转。

你可能感兴趣的:(数据结构)