add new solutions

This commit is contained in:
kanna5 2026-01-05 16:48:03 +09:00
parent 9c2c959a9b
commit 9a10695e8c
Signed by: kkyy
GPG key ID: 06332F3965E9B0CF
29 changed files with 1074 additions and 2 deletions

View file

@ -0,0 +1,39 @@
package q133
type Node struct {
Val int
Neighbors []*Node
}
func cloneGraph(node *Node) *Node {
if node == nil {
return nil
}
seen := map[*Node]*Node{}
queue := []*Node{node}
for ; len(queue) > 0; queue = queue[1:] {
cur := queue[0]
if _, ok := seen[cur]; ok {
continue
}
cloned := &Node{
Val: cur.Val,
Neighbors: []*Node{},
}
seen[cur] = cloned
for _, n := range cur.Neighbors {
if nCloned, ok := seen[n]; ok {
// Link
cloned.Neighbors = append(cloned.Neighbors, nCloned)
nCloned.Neighbors = append(nCloned.Neighbors, cloned)
} else {
// Add to queue
queue = append(queue, n)
}
}
}
return seen[node]
}
var _ = cloneGraph