用java实现双链表转成数组
时间: 2023-08-13 20:52:48 浏览: 98
双向链表(java实现)
要将双链表转换为数组,你可以使用Java的ArrayList数据结构来存储链表中的元素,并最终将ArrayList转换为数组。以下是一个示例代码:
```java
import java.util.ArrayList;
import java.util.List;
public class DoublyLinkedListToArray {
static class Node {
int data;
Node prev;
Node next;
public Node(int data) {
this.data = data;
}
}
public static int[] convertToArray(Node head) {
List<Integer> list = new ArrayList<>();
Node current = head;
while (current != null) {
list.add(current.data);
current = current.next;
}
// 将ArrayList转换为数组
int[] array = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
array[i] = list.get(i);
}
return array;
}
public static void main(String[] args) {
// 构建一个双链表: 1 <-> 2 <-> 3 <-> 4
Node head = new Node(1);
Node node2 = new Node(2);
Node node3 = new Node(3);
Node node4 = new Node(4);
head.next = node2;
node2.prev = head;
node2.next = node3;
node3.prev = node2;
node3.next = node4;
node4.prev = node3;
// 将双链表转换为数组
int[] array = convertToArray(head);
// 输出数组元素
for (int num : array) {
System.out.print(num + " ");
}
}
}
```
在这个示例中,我们定义了一个`Node`类来表示双链表的节点,其中包含了节点的数据、前驱节点和后继节点。`convertToArray`方法接收双链表的头节点作为参数,遍历链表将节点的数据存储在ArrayList中。然后,我们使用`ArrayList.toArray`方法将ArrayList转换为数组。
在`main`方法中,我们构建了一个包含4个节点的双链表,并调用`convertToArray`方法将双链表转换为数组。最后,我们输出数组中的元素。
运行这段代码,你会得到以下输出结果:
```
1 2 3 4
```
阅读全文