zoukankan      html  css  js  c++  java
  • C# 单向链表 逆序(递归)

     1   static void Main(string[] args)
     2         {
     3             while (true)
     4             {
     5                 LinkedList L = new LinkedList();
     6                 L.Add(new Node("first"));
     7                 L.Add(new Node("second"));
     8                 L.Add(new Node("third"));
     9                 L.Add(new Node("forth"));
    10                 Cw(L.Head);
    11                 L.Head= Reverse(L.Head);
    12                 Cw(L.Head);
    13                 Console.ReadKey();
    14                 i = 1;
    15             }
    16 
    17         }
    18 
    19         private static int i = 1;
    20 
    21 
    22         //单向链表逆序
    23         private static Node Reverse(Node header)
    24         {
    25             if (header.Next == null)
    26             {
    27                 return header;
    28             }
    29             //找到最后一个
    30             var node = Reverse(header.Next);
    31             //后一个的指针 指向前一个
    32             header.Next.Next = header;
    33             //前一个指针置空
    34             header.Next = null;
    35             return node;
    36         }
    37 
    38         //单向链表输出
    39         private static void Cw(Node node)
    40         {
    41             Console.WriteLine(node.Data);
    42             if (node.Next != null)
    43             {
    44                 Cw(node.Next);
    45             }
    46         }
    47 
    48         public class Node
    49         {
    50             public object Data;
    51             public Node Next;
    52             public Node(object Data)
    53             {
    54                 this.Data = Data;
    55             }
    56         }
    57 
    58         public class LinkedList
    59         {
    60             public Node Head;
    61             public Node Tail;
    62             public void Add(Node n)
    63             {
    64                 if (Head == null)
    65                 {
    66                     Head = n;
    67                     Tail = Head;
    68                 }
    69                 else
    70                 {
    71                     Tail.Next = n;
    72                     Tail = Tail.Next;
    73                 }
    74             }
    75         }
  • 相关阅读:
    keeprunning1的使用说明
    团队冲刺第十五天
    团队冲刺第十四天
    团队第一阶段冲刺评价
    团队第一阶段成果展示
    团队冲刺第十三天
    团队冲刺第十二天
    团队冲刺第十一天
    团队冲刺第十天
    团队冲刺第九天
  • 原文地址:https://www.cnblogs.com/TeemoHQ/p/11250174.html
Copyright © 2011-2022 走看看