思路分析示意图:
这个写法和上面的修改功能都有点bug,删除不存在的id时,会报错,还没有解决
//删除节点
//思路:
//1.head不能动,因此我们需要一个temp辅助节点找到待删除节点的前一个节点
//2.我们在比较时,时temp.next.no 和 需要删除的节点的no比较
public void delete(int no) {
HeroNode2 temp = head;
boolean flag = false;//标志是否找到待删除的节点
while (true) {
if (temp == null) {
break;
}
if (temp.next.no == no) {
//找到了待删除节点的前一个节点
flag = true;
break;
}
temp = temp.next;
}
if (flag) {
temp.next = temp.next.next;
} else {
System.out.printf("没有找到你要删除的%d号英雄\n", no);
}
}