35. 复杂链表的复制
题目
type ComplexListNode struct {
val int
next *ComplexListNode
sibling *ComplexListNode
}解题思路
实现代码
// Clone 以空间换时间,保存<N, N'>的映射关系
func Clone(head *ComplexListNode) *ComplexListNode {
if head == nil {
return nil
}
m := make(map[*ComplexListNode]*ComplexListNode)
p := head
for p != nil {
m[p] = &ComplexListNode{val: p.val}
p = p.next
}
p = head
for p != nil {
m[p].next = m[p.next]
m[p].sibling = m[p.sibling]
p = p.next
}
return m[head]
}Last updated