双向链表的增删
package com.shilei.dataStructure.linked;
/**
* @author shilei
* @date 2020/4/8-0:05
*/
//双向链表
public class DoubleLinkedNode {
private DoubleLinkedNode pre;
private DoubleLinkedNode next;
private int val;
public DoubleLinkedNode(int val){
this.val=val;
}
//新增一个节点
public void addNode(DoubleLinkedNode node){
DoubleLinkedNode head = this;
while (head.next != null){
head = head.next;
}
head.next=node;
node.pre=head;
}
//删除节点
public void deleteNode(int no){
DoubleLinkedNode head = this;
while (head.next != null && head.val != no){
head = head.next;
}
if(head.next == null && head.val != no){
throw new RuntimeException("没有要删除的节点");
}
head.pre.next=head.next;
head.next.pre=head.pre;
head.pre=null;//方便GC
head.next=null;//方便GC
}
}