zoukankan      html  css  js  c++  java
  • 单链表的面试题分享

      1、单链表按顺序添加元素

      

        代码如下:

     public void  addByOrder(HeroNode node){
            if(headNode.next==null){
                headNode.next=node;
                return;
            }
            HeroNode cur=headNode.next;
            while (true){
                //找到合适的那个位置
                if(cur.next.heroNo>node.heroNo){
                    break;
                }
                cur=cur.next;
            }
            //找到合适位置了之后,拆开来
            HeroNode tempNode=cur.next;
            cur.next=node;
            node.next=tempNode;
        }

      2、单链表的反转

      方法一:

      如下图所示:

     代码如下:

    public void reverse(){
            if(headNode.next==null){
                System.out.println("链表为空");
                return;
            }
            HeroNode reverseHead=new HeroNode("","",0);
            //把链表数据,一个个读取出来,加入到新的链表中。
            HeroNode tempNode=headNode.next;
            while (true){
                if(tempNode.next==null){
                    break;
                }
                //每次都加入到最前面。
                HeroNode rsNode=new HeroNode(tempNode.heroName,tempNode.nickName,tempNode.heroNo);
                if(reverseHead.next==null){
                    reverseHead.next=rsNode;
                }else{
                    HeroNode tempReserveNode=reverseHead.next;
                    reverseHead.next=rsNode;
                    rsNode.next=tempReserveNode;
                }
                tempNode=tempNode.next;
            }
            headNode.next=reverseHead.next;
        }
  • 相关阅读:
    验证码图片不刷新解决方法
    表单验证
    Thinkphp显示系统常量信息的方法(php的用法)
    原生sql语句执行
    Python中的模块(2)
    Python 正则表达式中级
    正则表达式 和 原生字符串 r
    collections模块
    时间模块
    random模块
  • 原文地址:https://www.cnblogs.com/gdouzz/p/14284311.html
Copyright © 2011-2022 走看看