java创建一个链完整代码
时间: 2024-08-13 21:01:05 浏览: 85
在 Java 中创建一个链表需要定义两个类:`Node` 和 `LinkedList`。
### Node 类
这个类将用于表示链表中的单个节点,并包含数据元素以及指向下一个节点的引用。
```java
public class Node {
int data;
Node next;
public Node(int data) {
this.data = data;
this.next = null; // 初始情况下,下一个节点为空
}
}
```
### LinkedList 类
此类代表链表本身,包含对头节点的引用、添加新元素的方法、删除特定元素的方法等。
```java
import java.util.NoSuchElementException;
public class LinkedList {
private Node head;
private int size;
public LinkedList() {
head = null;
size = 0;
}
public void addFirst(int value) {
Node newNode = new Node(value);
newNode.next = head;
head = newNode;
size++;
}
public boolean remove(int value) {
if (head == null) return false;
if (head.data == value) {
head = head.next;
size--;
return true;
}
Node prev = null;
Node current = head;
while (current != null && current.data != value) {
prev = current;
current = current.next;
}
if (current != null) {
prev.next = current.next;
size--;
return true;
}
return false;
}
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.addFirst(4);
list.addFirst(5);
list.addFirst(6);
System.out.println("Initial list: " + list.toString());
list.remove(5);
System.out.println("List after removing 5: " + list.toString());
}
// Helper method to print the linked list for visualization purposes
public String toString() {
StringBuilder sb = new StringBuilder();
Node current = head;
while (current != null) {
sb.append(current.data).append(" -> ");
current = current.next;
}
sb.append("null");
return sb.toString();
}
}
```
### 完整代码及运行结果示例:
当运行上面给出的 `main` 方法时,可以看到链表是如何创建、添加元素并移除某个元素的。
```
Initial list: 6 -> 5 -> 4 -> null
List after removing 5: 6 -> 4 -> null
```
以上是创建简单链表的完整代码及其运行效果。您可以根据需要进一步扩展链表功能,如搜索、插入、排序等操作。