C# 单向链表 逆序(递归)

你离开我真会死。 提交于 2020-01-31 14:00:13
 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         }

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!