C# LinkedList深度复制
时间: 2024-09-15 19:00:34 浏览: 30
C#双向链表LinkedList排序实现方法
在C#中,LinkedList是一种动态数组,用于快速添加、删除元素。要对LinkedList进行深度复制,你需要创建一个新的LinkedList,然后遍历原链表,将每一个节点的数据复制到新链表上。以下是一个基本的例子:
```csharp
using System.Collections.Generic;
public class DeepCopyLinkedList<T>
{
private LinkedListNode<T> _current;
public LinkedList<T> DeepCopy(LinkedList<T> original)
{
LinkedList<T> copy = new LinkedList<T>();
// 遍历原链表
foreach (LinkedListNode<T> node in original)
{
_current = new LinkedListNode<T>(node.Value); // 创建新节点并赋值
copy.AddLast(_current); // 添加到新链表
}
return copy;
}
}
// 使用示例
LinkedList<int> originalList = new LinkedList<int>();
originalList.AddLast(1);
originalList.AddLast(2);
originalList.AddLast(3);
LinkedList<int> copiedList = new DeepCopyLinkedList<int>().DeepCopy(originalList);
foreach (LinkedListNode<int> node in copiedList)
{
Console.Write(node.Value + " ");
}
```
这个`DeepCopy`方法会创建一个新的LinkedList,并使用`AddLast`方法在新链表的末尾添加新的节点,每个节点的值都是从原链表中复制过来的。
阅读全文