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

  • 相关阅读:
    进军es6(1)---初识es6
    Nginx缓存配置指南
    openresty编译安装
    nginx反向代理时有无”/”的辨析
    Spring Boot 成长之路(一) 快速上手
    使用Intellij中的Spring Initializr来快速构建Spring Boot工程
    Flask扩展 -- flask-mail
    python3 enum模块
    Python3 JSON 数据解析
    flask扩展 -- flask-script
  • 原文地址:https://www.cnblogs.com/Langzi127/p/1773571.html
Copyright © 2011-2022 走看看