// graph is an adjacency list: graph[node] = list of neighbors.
func dfs(graph [][]int, start int) []int {
}
// graph is an adjacency list: graph[node] = list of neighbors.
func dfs(graph [][]int, start int) []int {
// Micropattern: track visited nodes, record visit order.
}
// graph is an adjacency list: graph[node] = list of neighbors.
func dfs(graph [][]int, start int) []int {
// Micropattern: track visited nodes, record visit order.
visited := make([]bool, len(graph))
order := []int{}
}
// graph is an adjacency list: graph[node] = list of neighbors.
func dfs(graph [][]int, start int) []int {
// Micropattern: track visited nodes, record visit order.
visited := make([]bool, len(graph))
order := []int{}
// Recursive helper closes over visited/order.
}
// graph is an adjacency list: graph[node] = list of neighbors.
func dfs(graph [][]int, start int) []int {
// Micropattern: track visited nodes, record visit order.
visited := make([]bool, len(graph))
order := []int{}
// Recursive helper closes over visited/order.
var visit func(node int)
visit = func(node int) {
}
}
// graph is an adjacency list: graph[node] = list of neighbors.
func dfs(graph [][]int, start int) []int {
// Micropattern: track visited nodes, record visit order.
visited := make([]bool, len(graph))
order := []int{}
// Recursive helper closes over visited/order.
var visit func(node int)
visit = func(node int) {
visited[node] = true
order = append(order, node)
}
}
// graph is an adjacency list: graph[node] = list of neighbors.
func dfs(graph [][]int, start int) []int {
// Micropattern: track visited nodes, record visit order.
visited := make([]bool, len(graph))
order := []int{}
// Recursive helper closes over visited/order.
var visit func(node int)
visit = func(node int) {
visited[node] = true
order = append(order, node)
// Recurse into each unvisited neighbor.
}
}
// graph is an adjacency list: graph[node] = list of neighbors.
func dfs(graph [][]int, start int) []int {
// Micropattern: track visited nodes, record visit order.
visited := make([]bool, len(graph))
order := []int{}
// Recursive helper closes over visited/order.
var visit func(node int)
visit = func(node int) {
visited[node] = true
order = append(order, node)
// Recurse into each unvisited neighbor.
for _, next := range graph[node] {
if !visited[next] {
visit(next)
}
}
}
}
// graph is an adjacency list: graph[node] = list of neighbors.
func dfs(graph [][]int, start int) []int {
// Micropattern: track visited nodes, record visit order.
visited := make([]bool, len(graph))
order := []int{}
// Recursive helper closes over visited/order.
var visit func(node int)
visit = func(node int) {
visited[node] = true
order = append(order, node)
// Recurse into each unvisited neighbor.
for _, next := range graph[node] {
if !visited[next] {
visit(next)
}
}
}
visit(start)
return order // O(V + E)
}
Tap the left half to go back, the right half to go forward.
Arrow keys or space to navigate · Esc to exit.