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

  • 相关阅读:
    BitmapFactory.decodeStream(inputStream)返回null的解决方法
    android studio 自用快捷键方案
    jquery源码学习(四)—— jquery.extend()
    css3动画性能优化
    组件化开发之vue
    调用本地摄像头并通过canvas拍照
    傳説中的 jsonp
    jsonp的原理
    正确而又严谨得ajax原生创建方式
    让浏览器阻塞10秒钟的方法
  • 原文地址:https://www.cnblogs.com/Langzi127/p/1773571.html
Copyright © 2011-2022 走看看