在Java中,链表的实现通常是通过创建一个节点类(Node)和一个链表类(LinkedList)。节点类包含一个数据域和一个指向下一个节点的引用。链表类包含一个头节点引用,用于存储链表的第一个元素。以下是一个简单的单向链表实现:
- 首先,创建一个节点类(Node):
public class Node{ private T data; private Node next; public Node(T data) { this.data = https://www.yisu.com/ask/data;> getNext() { return next; } public void setNext(Node next) { this.next = next; } }
- 然后,创建一个链表类(LinkedList):
public class LinkedList{ private Node head; public LinkedList() { this.head = null; } // 添加元素到链表头部 public void addFirst(T data) { Node newNode = new Node<>(data); newNode.setNext(head); head = newNode; } // 添加元素到链表尾部 public void addLast(T data) { Node newNode = new Node<>(data); if (head == null) { head = newNode; } else { Node current = head; while (current.getNext() != null) { current = current.getNext(); } current.setNext(newNode); } } // 从链表中删除第一个元素 public T removeFirst() { if (head == null) { throw new IllegalStateException("List is empty"); } T data = https://www.yisu.com/ask/head.getData();> current = head; while (current != null) { System.out.print(current.getData() + " -> "); current = current.getNext(); } System.out.println("null"); } }
现在你可以创建一个链表对象并使用这些方法来操作它:
public class Main { public static void main(String[] args) { LinkedListlist = new LinkedList<>(); list.addFirst(1); list.addLast(2); list.addFirst(0); list.traverse(); // 输出: 0 -> 1 -> 2 -> null System.out.println(list.removeFirst()); // 输出: 0 list.traverse(); // 输出: 1 -> 2 -> null } }
这个实现仅包含单向链表的基本操作。你可以根据需要扩展这个实现,例如添加双向链表支持、链表反转等。