一:概括
双向链表和单链表最大的不同是双链表有两个指针域,
pre (前指针域):指向前一个结点
next(后指针域):指向后一个结点
二:基本操作的思路
增:遍历链表找到最后一个结点,最后一个结点指向新加入的结点,新加入的结点指向最后这个结点 // temp.next = newNode;
// newNode.pre = temp; //
删:
1.遍历链表找到你要删除的结点,要删除结点的前一个结点的尾指针指向要删除的结点的下一个结点
2. 要删除的下一个结点的前指针指向要删除结点的前一个结点
// temp.pre.next = temp.next;
// temp.next.pre = temp.pre;
改:遍历链表找到要修改的结点,把要修改结点的数据替换为要新节的的数据
查:遍历链表,找到结点并返回
三:代码如下
1.功能类
public class DoubleLinked {
private Node head = new Node(); //头结点,不存放数据,便于对整个链表的操作
// 返回头结点
public Node getHead() {
return head;
}
// 遍历双向链表
public void showLinked_1(Node head) {
Node temp = head.next;
if (temp == null) {
System.out.println("链表为空");
}
while (tem