单向链表第二种添加方式:
按照排名将节点插入指定位置,如果指定位置有节点,就提示添加失败!
需要按照编号的顺序添加
//第二种方式插入节点 //按照英雄排名插入到指定位置,如果有这个排名,则提示插入失败 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; }
测试: