note:注意删除最后一个节点
//删除链表的节点(自我删除,不需要借助删除节点的前一个节点)
public void delete(int no){
if(head.next==null){
System.out.println("链表是空的,不能删除节点");
return;
}
//寻找要删除节点的前一个节点
HeronodeD temp=head.next;
boolean flag=false;//表示有无找到点一个节点
while(true){
if(temp==null){//已经查询到链表空的状态
break;
}
if(temp.no==no){
flag=true;
break;//找到了要删除节点的自身位置
}
temp=temp.next;
}
if(flag){
temp.pre.next=temp.next;
if(temp.next!=null){
temp.next.pre=temp.pre;//如果是删除最后一个节点,那么这句话不需要执行(因为temp.next是null)
}
}else{
System.out.println("没有要删除的节点");
}
}