按顺序插入节点(分析)
代码实现
/**
* 根据英雄的排名插入到指定的位置
* (如果有这个排名,则添加失败,并给出提示)
*/
public void addByOrder(HeroNode node) {
//因为头节点不能动,我们仍然需要通过一个辅助变量来帮助我们找到指定的位置
//因为单链表,因为我们找的temp是位于添加位置的前一个节点,否则插入不了
HeroNode temp = head;
boolean flag = false;
while (true) {
//说明temp已经到了最后
if (temp.next == null) {
break;
}
if (temp.next.no > node.no) {
break;//位置已经找到
} else if (temp.next.no == node.no) {
flag = true;
break;
}
temp = temp.next;//后移,遍历当前链表
}
if (flag) {
//不能新增
System.out.printf("准备插入的英雄编号%d已经存在,不能添加\n", node.no);
} else {
//可以添加
node.</