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

  • 相关阅读:
    挑战程序设计竞赛 dp
    算法导论 动态规划
    算法导论第二章
    divide conquer
    时间戳
    bootstrap 针对超小屏幕和中等屏幕设备定义的不同的类
    jQuery中的Ajax
    怎么判断一个变量是Null还是undefined
    认识Ajax
    关于apache
  • 原文地址:https://www.cnblogs.com/Langzi127/p/1773571.html
Copyright © 2011-2022 走看看