您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
要实现一个双向链表,你需要在原有的单向链表基础上,为每个节点添加指向前一个节点和后一个节点的引用
public class Node {
int data;
Node prev;
Node next;
public Node(int data) {
this.data = data;
this.prev = null;
this.next = null;
}
}
public class DoublyLinkedList {
Node head;
Node tail;
public DoublyLinkedList() {
this.head = null;
this.tail = null;
}
// 添加节点到链表尾部
public void add(int data) {
Node newNode = new Node(data);
if (head == null) {
head = newNode;
tail = newNode;
} else {
newNode.prev = tail;
tail.next = newNode;
tail = newNode;
}
}
// 从链表中删除节点
public void remove(int data) {
Node currentNode = head;
while (currentNode != null) {
if (currentNode.data == data) {
if (currentNode.prev != null) {
currentNode.prev.next = currentNode.next;
} else {
head = currentNode.next;
}
if (currentNode.next != null) {
currentNode.next.prev = currentNode.prev;
} else {
tail = currentNode.prev;
}
return;
}
currentNode = currentNode.next;
}
}
// 打印链表
public void print() {
Node currentNode = head;
while (currentNode != null) {
System.out.print(currentNode.data + " ");
currentNode = currentNode.next;
}
System.out.println();
}
public static void main(String[] args) {
DoublyLinkedList list = new DoublyLinkedList();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.print(); // 输出: 1 2 3 4
list.remove(2);
list.print(); // 输出: 1 3 4
}
}
这个示例中,我们定义了一个 Node
类,它包含数据、前一个节点引用和后一个节点引用。DoublyLinkedList
类包含头节点和尾节点引用,以及添加、删除和打印链表的方法。通过这些方法,你可以实现双向链表的基本功能。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。