1.注意:在增删改时,我们都需要判定temp.next是否为空,即用到next,查的时候,直接用本身即可。
2.双向链表:与单链表最大的不同就是双向链表可以实现自我删除, 即直接找到要要删除的结点即可。
还记得在做单链表时,我们总要找到他的前一个结点。
3.双向链表除了删除不太一样,其余和单链表差不多。
4.附上代码:
//双向链表实现自我删除
public void del(Integer id){
if(head.next==null)
return ;
boolean flag=false;
Node temp=head.next;
while(temp!=null)
{
if(temp.id==id)
{
flag=true;
break;
}
temp=temp.next;
}
if(flag)
{
temp.pre.next=temp.next;
if(temp.next!=null)
temp.next.pre=temp.pre;
}
else{
System.out.printf("%d不存在,无法删除",id);
}
}
注意双向链表添加是也要是双向
temp.next=node;
node.pre=temp;
}