当前位置: 首页 > news >正文

将链表逆序(Revert)的C#实现

链表逆序,是面试常见的考题。今天我的Manager居然给我出了这道题(说是再招聘其他人以我的水平做参照!),我做的可是漏洞百出啊,闲来整理了一下代码用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();
            }

        }

    }

}
本文转自Jack Niu博客园博客,原文链接:http://www.cnblogs.com/skywind/archive/2007/12/18/1004343.html,如需转载请自行联系原作者

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 高中数学中需要重点关注的函数和图像
  • 如何实现DES算法
  • TensorFlow系列专题(三):深度学习简介
  • top命令解析
  • Tensorflow 笔记
  • 经典总结:PERL中用DBD:ORACLE模块的权限问题
  • 许昌五女店考场考试安排
  • perl链接数据库实例
  • android的四种线程池
  • mybatis0210 mybatis和ehcache缓存框架整合
  • 激活 win10 企业版2016长期服务版本
  • jQuery MD5加密
  • node.js 安装,你会吗?
  • mysql 列转行,合并字段
  • 如何将JDK源码导入到eclipse 或 Intellij idea呢?
  • .pyc 想到的一些问题
  • avalon2.2的VM生成过程
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • ERLANG 网工修炼笔记 ---- UDP
  • hadoop集群管理系统搭建规划说明
  • java 多线程基础, 我觉得还是有必要看看的
  • Java-详解HashMap
  • JS实现简单的MVC模式开发小游戏
  • leetcode46 Permutation 排列组合
  • Logstash 参考指南(目录)
  • magento 货币换算
  • React 快速上手 - 07 前端路由 react-router
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • spring cloud gateway 源码解析(4)跨域问题处理
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • Vue组件定义
  • 从零搭建Koa2 Server
  • 聊聊flink的BlobWriter
  • 前端临床手札——文件上传
  • 入门级的git使用指北
  • 算法系列——算法入门之递归分而治之思想的实现
  • 通信类
  • 物联网链路协议
  • 异步
  • 中文输入法与React文本输入框的问题与解决方案
  • kubernetes资源对象--ingress
  • 湖北分布式智能数据采集方法有哪些?
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​一些不规范的GTID使用场景
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (¥1011)-(一千零一拾一元整)输出
  • (1)Nginx简介和安装教程
  • (pojstep1.3.1)1017(构造法模拟)
  • (第61天)多租户架构(CDB/PDB)
  • (分布式缓存)Redis分片集群
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (每日一问)操作系统:常见的 Linux 指令详解
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (五)关系数据库标准语言SQL