You are viewing a single comment's thread. Return to all comments →
Simple Go (Golang) solution
func swapNodes(indexes [][]int32, queries []int32) [][]int32 { result := make([][]int32, 0, len(queries)) var dfs func(idx int32, depth int32, query int32, inOrder *[]int32) dfs = func(idx int32, depth int32, query int32, inOrder *[]int32) { subtrees := indexes[idx-1] if depth%query == 0 { subtrees[0], subtrees[1] = subtrees[1], subtrees[0] } if subtrees[0] != -1 { dfs(subtrees[0], depth+1, query, inOrder) } *inOrder = append(*inOrder, idx) if subtrees[1] != -1 { dfs(subtrees[1], depth+1, query, inOrder) } } for _, query := range queries { inOrder := &[]int32{} dfs(1, 1, query, inOrder) result = append(result, *inOrder) } return result }
Seems like cookies are disabled on this browser, please enable them to open this website
Swap Nodes [Algo]
You are viewing a single comment's thread. Return to all comments →
Simple Go (Golang) solution