单链表的深拷贝java
时间: 2024-03-13 13:40:18 浏览: 108
单链表是一种常见的数据结构,它由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的引用。深拷贝是指创建一个新的单链表,其中包含与原始链表相同的节点和数据,但是它们在内存中是独立的。
在Java中,可以通过以下步骤实现单链表的深拷贝:
1. 首先,定义一个单链表节点类,包含数据元素和指向下一个节点的引用。例如:
```java
class ListNode {
int val;
ListNode next;
ListNode(int val) {
this.val = val;
}
}
```
2. 创建原始链表,并添加节点。例如:
```java
ListNode head = new ListNode(1);
ListNode node2 = new ListNode(2);
ListNode node3 = new ListNode(3);
head.next = node2;
node2.next = node3;
```
3. 创建一个新的链表,并遍历原始链表,将每个节点的值复制到新链表中。例如:
```java
ListNode newHead = new ListNode(head.val);
ListNode newCurrent = newHead;
ListNode current = head.next;
while (current != null) {
ListNode newNode = new ListNode(current.val);
newCurrent.next = newNode;
newCurrent = newCurrent.next;
current = current.next;
}
```
4. 现在,新链表已经完成深拷贝。你可以对新链表进行任何操作,而不会影响原始链表。
阅读全文