给边,但并不知道谁是谁是父节点#
直接建图,在遍历时传参带父节点,避免循环
func minimumFuelCost(roads [][]int) int64 {
n := len(roads) + 1
graph := make([][]int, n)
for i := range graph {
graph[i] = make([]int, 0)
}
for _, road := range roads {
graph[road[0]] = append(graph[road[0]], road[1])
graph[road[1]] = append(graph[road[1]], road[0])
}
_, cost := dfs(graph, 0, -1)
return int64(cost)
}
给父节点数组parent[i] 是节点 i 的父节点#
func longestPath(parent []int, s string) int {
n := len(parent)
graph := make([][]int, n)
for i := range graph {
graph[i] = make([]int, 0)
}
for i := 1; i < n; i++ {
graph[parent[i]] = append(graph[parent[i]], i)
}
dfs(graph, []byte(s))
}
