zoukankan      html  css  js  c++  java
  • C#数据结构与算法系列(五):常见单链表笔试

    1.求单链表中有效节点个数

            public static int GetLength(HeroNode headNode)
            {
                int length = 0;
    
                var cur = headNode.Next;
    
                while (true)
                {
                    if (cur == null) break;
    
                    length++;
    
                    cur = cur.Next;
                }
                return length;
            }

    2.查找单链表中倒数第N个节点

      public static HeroNode GetLastIndexNode(HeroNode headNode, int index)
            {
                var cur = headNode.Next;
    
                //if (cur == null) return null;
    
                int count = 0;
    
                while (true)
                {
                    if (cur == null) break;
    
                    count++;
    
                    cur = cur.Next;
                }
    
                if (index <= 0 || index > count)
                {
                    return null;
                }
    
                cur = headNode.Next;
    
                for (int i = 0; i < count - index; i++)
                {
                    cur = cur.Next;
                }
    
                return cur;
            }

    3.单链表反转

       public static  HeroNode  ReversetList(HeroNode headNode)
            {
    
                var cur = headNode.Next;
    
                if (cur == null) return null;
    
                var reversetNode = new HeroNode(0,"","");
    
                HeroNode next = null;
    
                while (cur!=null)
                {
                    next = cur.Next;      
                    
                    cur.Next = reversetNode.Next;
    
                    reversetNode.Next = cur;
    
                    cur = next;
                    
                }
    return reversetNode; }

    4.从尾到头打印单链表

            public static void ReversetPrint(HeroNode head)
            {
                var cur = head.Next;
    
                if (cur == null) return;
    
                Stack<HeroNode> stack = new Stack<HeroNode>();
    
                while (cur!=null)
                {
                    stack.Push(cur);
    
                    cur = cur.Next;
                }
    
                while (stack.Count>0)
                {
                    var temp = stack.Pop();
    
                    Console.WriteLine($"id={temp.Id},name={temp.Name},nickName={temp.NickName}");
                }
            }

     

  • 相关阅读:
    gdb --configuration
    firecracker 编译
    gvisor 编译
    gvisor
    rust Deref
    rust explicit
    rust move
    rust drop
    出租人对经营租赁的会计处理
    关于以公允价值计量的投资性房地产的处置
  • 原文地址:https://www.cnblogs.com/vic-tory/p/13138640.html
Copyright © 2011-2022 走看看