20240525 Finished

This commit is contained in:
jackfiled 2024-05-25 21:41:53 +08:00
parent df4e3e929c
commit 1780117bd6

View File

@ -0,0 +1,87 @@
// [138] Copy List with Random Pointer
using System.Collections.Generic;
namespace LeetCodeSharp.Problems138
{
// Submission codes start here
/*
// Definition for a Node.
public class Node {
public int val;
public Node next;
public Node random;
public Node(int _val) {
val = _val;
next = null;
random = null;
}
}
*/
public class Node
{
public int val;
public Node next;
public Node random;
public Node(int _val)
{
val = _val;
next = null;
random = null;
}
}
public class Solution
{
private readonly List<Node> _nodes = new List<Node>();
public Node CopyRandomList(Node head)
{
_nodes.Clear();
Node newHead = null;
Node newNow = null;
Node now = head;
while (now != null)
{
Node newNode = new Node(now.val);
now.val = _nodes.Count;
newNode.random = now.random;
_nodes.Add(newNode);
if (newHead == null)
{
newHead = newNode;
newNow = newNode;
}
else
{
newNow.next = newNode;
newNow = newNode;
}
now = now.next;
}
newNow = newHead;
while (newNow != null)
{
if (newNow.random != null)
{
newNow.random = _nodes[newNow.random.val];
}
newNow = newNow.next;
}
return newHead;
}
}
// Submission codes end here
}