Title

单链表之按顺序插入元素

单向链表第二种添加方式:

按照排名将节点插入指定位置,如果指定位置有节点,就提示添加失败!

需要按照编号的顺序添加

  • 首先找到新添加节点的位置,通过辅助变量,遍历来搞定
  • 新的节点.next = temp.next
  • 将temp.next = 新的节点
//第二种方式插入节点     //按照英雄排名插入到指定位置,如果有这个排名,则提示插入失败     public void addNode2(HeroNode heroNode){         //因为我们找的temp是位于添加位置的前一个节点,否则添加不了         HeroNode temp = head;         boolean flag = false;   //flag标志添加的编号是否存在,默认为false         while(true){             if(temp.next == null){  //说明temp已经在链表的最后                 break;             }             if(temp.next.no > heroNode.no){    //位置已找到                 break;             }else if(temp.next.no == heroNode.no){   //说明要添加的heroNode的no已存在于链表中                 flag = true;   //说明编号存在                 break;             }             temp = temp.next;   //后移,遍历当前链表         }         if(flag){  //如果flag为真,则说明heroNode.no已存在,打印提示信息             System.out.println("添加失败!此英雄的编号"+heroNode.no+"存在");         }else{             //插入到链表中,temp后面             heroNode.next = temp.next;             temp.next = heroNode;         }

测试: