随机链表的复制
// 随机链表的复制
package linkedlist
/**
* Definition for a Node.
* type Node struct {
* Val int
* Next *Node
* Random *Node
* }
*/
func copyRandomList(head *Node) *Node {
map1 := make(map[*Node]*Node)
for curr := head; curr != nil; curr = curr.Next {
map1[curr] = &Node{Val: curr.Val}
}
for curr := head; curr != nil; curr = curr.Next {
map1[curr].Next = map1[curr.Next]
map1[curr].Random = map1[curr.Random]
}
return map1[head]
}
type Node struct {
Val int
Next *Node
Random *Node
}