zoukankan      html  css  js  c++  java
  • 逆转一个线性链表

    1. 递归法:

    代码
            /// <summary>
            
    /// Reverse linked list by recursion
            
    /// </summary>
            
    /// <param name="head"></param>
            public static LinkNode<T> Reverse_Recursion(LinkNode<T> head)
            {
                
    if (head == null || head.Next == null)
                {
                    
    return head;
                }

                LinkNode
    <T> node = Reverse_Recursion(head.Next);
                head.Next.Next 
    = head;
                head.Next 
    = null;

                
    return node;
            }

    2. 非递归法:

    代码
            /// <summary>
            
    /// Reverse linked list
            
    /// </summary>
            
    /// <param name="head"></param>
            
    /// <returns></returns>
            public static LinkNode<T> Reverse(LinkNode<T> head)
            {
                
    if (head == null || head.Next == null)
                {
                    
    return head;
                }

                var currentNode 
    = head.Next;
                var previousNode 
    = head;
                LinkNode
    <T> nextNode = null;

                previousNode.Next 
    = null;
                
    while (currentNode != null)
                {
                    nextNode 
    = currentNode.Next;
                    currentNode.Next 
    = previousNode;

                    previousNode 
    = currentNode;
                    currentNode 
    = nextNode;
                }

                
    return previousNode;
            }

     download

  • 相关阅读:
    Zabbix触发器支持的函数说明
    Zabbix Trigger表达式实例
    Nginx 504 Gateway Time-out问题解决
    题外话:我想立刻辞职,然后闭关学习编程语言,我给自己3个月时间学习C语言!这样行的通吗
    Vim快捷键分类
    [转]运维工作解释
    Cobbler的Web管理和维护
    使用 Cobbler 自动化和管理系统安装
    NTP时间服务器
    自动化部署必备技能—搭建YUM仓库
  • 原文地址:https://www.cnblogs.com/Langzi127/p/1773571.html
Copyright © 2011-2022 走看看