//从双向链表中删除一个节点
//说明
//1.对于双向链表,我们可以直接找到删除的这个节点
//2.找到后,自我删除即可
public void del(int no) {
//判断当前链表是否为空
if (head.next==null){ //空链表
System.out.println("链表为空,无法删除");
return;
}
HeroNode2 temp = head.next;//辅助变量(指针)
boolean flag = false;//标志是否找到待删除节点
while (true) {
if (temp == null) { //已经到链表的最后
break;
}
if (temp.no == no) {
//找到的待删除节点的前一个节点temp
flag = true;
break;
}
temp = temp.next;//temp后移,遍历
}
//判断flag
if (flag) { //找到
//可以删除
temp.pre.next=temp.next;
//这里我们的代码有问题?
//如果是最后一个节点,就不要执行下面这句话,否则出现空指针
if(temp.next!=null){
temp.next.pre=temp.pre;
}
} else {
System.out.println("要删除的" + no + "节点不存在");
}
}
注意:
声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。