• 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;

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

  • 相关阅读:
    ICMP协议
    观察者模式-Observer
    模板方法模式-Template Method
    Java的演变过程
    汉诺塔-Hanoi
    外观模式-Facade
    JDK5-增强for循环
    JDK5-可变参数
    动态代理与AOP
    代理模式-Proxy
  • 原文地址:https://www.cnblogs.com/lbsong/p/1678450.html
Copyright © 2020-2023  润新知