zoukankan      html  css  js  c++  java
  • 将链表逆序(Revert)的C#实现

    // 链表类
    class LL
    {
        public string value;
        public LL link;
        // used for outputing the link data
        public void OutPut()
        {
            Console.Write(value);
            if (link != null)
            {
                Console.Write(",");
                link.OutPut();
            }
        }
    }

    逆序:
    private LL Revert(LL t)
    {
        LL newList = null;
        while (t != null)
        {
            LL mid = new LL();
            mid.value = t.value;
            mid.link = newList;

            newList = mid;
            t = t.link;
        }
        return newList;

    全部代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace _08ConsoleTest
    {
        
    class Program
        
    {
            
    static void Main(string[] args)
            
    {
                Test t 
    = new Test();
                t.T1();
            }



        }

        
    public class Test
        
    {
            
    public void T1()
            
    {
                
    // Create a Link 
                LL l = CreateLL("A");
                LL l2 
    = CreateLL("B");
                l.link 
    = l2;
                l2.link 
    = CreateLL("C");

                OutputLL(l);    
    // Output the original link: A B C
                LL revertLL = Revert(l);
                OutputLL(revertLL);  
    // Output the target link: C B A
                OutputLL(l);    // Output the original link: A B C (The original link will not change) 
            }

            
    private void OutputLL(LL l)
            
    {
                l.OutPut();
                Console.WriteLine(
    "---------------");
            }

            
    private LL Revert(LL t)
            
    {
                LL newList 
    = null;
                
    while (t != null)
                
    {
                    LL mid 
    = new LL();
                    mid.value 
    = t.value;
                    mid.link 
    = newList;

                    newList 
    = mid;
                    t 
    = t.link;
                }

                
    return newList;
            }

            
    private LL CreateLL(string a)
            
    {
                LL l 
    = new LL();
                l.value 
    = a;
                
    return l;
            }

        }

        
    // 链表类
        class LL
        
    {
            
    public string value;
            
    public LL link;
            
    // used for outputing the link data
            public void OutPut()
            
    {
                Console.Write(value);
                
    if (link != null)
                
    {
                    Console.Write(
    ",");
                    link.OutPut();
                }

            }

        }

    }
  • 相关阅读:
    URAL 2046 A
    URAL 2056 Scholarship 水题
    Codeforces Gym 100286I iSharp 水题
    Codeforces Gym H. Hell on the Markets 贪心
    Codeforces Gym 100286G Giant Screen 水题
    Codeforces Gym 100286B Blind Walk DFS
    Codeforces Gym 100286F Problem F. Fibonacci System 数位DP
    Codeforces Gym 100286A. Aerodynamics 计算几何 求二维凸包面积
    Codeforces Gym 100418K Cards 暴力打表
    Codeforces Gym 100418J Lucky tickets 数位DP
  • 原文地址:https://www.cnblogs.com/zhangchenliang/p/2369644.html
Copyright © 2011-2022 走看看