2
def distanceK(self, root, target, K):3
# Step 1: Build adjacency list graph5
self.buildGraph(root, None, graph)7
# Step 2: Perform BFS from the target node9
visited = set([target])13
node, distance = queue.pop(0)16
result.append(node.val)21
for neighbor in graph[node]:22
if neighbor not in visited:24
queue.append((neighbor, distance + 1))28
def buildGraph(self, node, parent, graph):36
graph[node].append(parent)37
graph[parent].append(node)39
self.buildGraph(node.left, node, graph)40
self.buildGraph(node.right, node, graph)