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;
    }

 

相关文章:

  • 2022-03-03
  • 2021-12-08
  • 2022-12-23
  • 2021-12-18
  • 2021-11-26
  • 2021-12-17
  • 2021-07-11
  • 2021-12-13
猜你喜欢
  • 2021-06-28
  • 2021-06-16
  • 2022-01-05
  • 2021-07-16
  • 2021-07-08
  • 2021-11-29
  • 2022-01-18
相关资源
相似解决方案