You are viewing a single comment's thread. Return to all comments →
Python 3 Version, it's mostly the same as g503420777's code but it's derived from trying to analyze as normal node traversal
sys.setrecursionlimit(2000) def swapNodes(indexes, queries): # Write your code here result = [] for k in queries: res = [] swap(indexes, 1, 1, k, res) #inOrder(indexes, 1, res) result.append(res) return result def swap(nodes, depth, idx, k, res): if idx == -1: return if depth % k == 0: nodes[idx - 1][0], nodes[idx - 1][1] = nodes[idx - 1][1], nodes[idx - 1][0] swap(nodes, depth + 1, nodes[idx - 1][0], k, res) res.append(idx) swap(nodes, depth + 1, nodes[idx - 1][1], k, res) def inOrder(nodes, idx, result): left = nodes[idx - 1][0] right = nodes[idx - 1][1] if left != -1: inOrder(nodes, left, result) result.append(idx) if right != -1: inOrder(nodes, right, 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 →
Python 3 Version, it's mostly the same as g503420777's code but it's derived from trying to analyze as normal node traversal