思路:
1.先找到要删除节点的前一个节点temp;
2.执行操作:temp.next = temp.next.next;
注:被删除的节点不会有其他引用,会被Java的垃圾回收机制回收。
删除节点代码如下:
//根据编号删除节点
public void delete(int no){
HeroNode temp = head;
boolean flag = false;
while(true){
if(temp.next == null){ //没有找到要删除的节点
break;
}
if(temp.next.no == no){
flag = true;
break;
}
temp = temp.next;
}
if(flag){ //找到要删除的节点的前一个节点,删除编号为no的节点
temp.next = temp.next.next;
}else{
System.out.printf("没有找到编号为%d的节点,不能删除!",no);
}
}