Leetcode•Oct 12, 2026
All Nodes Distance K in Binary Tree
Hazrat Ali
Leetcode
Given the root of a binary tree, the value of a target node target, and an integer k, return an array of the values of all nodes that have a distance k from the target node.
You can return the answer in any order.
Example 1:

Input: root = [3,5,1,6,2,0,8,null,null,7,4], target = 5, k = 2 Output: [7,4,1] Explanation: The nodes that are a distance 2 from the target node (with value 5) have values 7, 4, and 1.
Example 2:
Input: root = [1], target = 1, k = 3 Output: []
Solution
var distanceK = function(root, target, k) {
const parent = new Map();
function dfs(node, par) {
if (!node) return;
parent.set(node, par);
dfs(node.left, node);
dfs(node.right, node);
}
dfs(root, null);
const queue = [[target, 0]];
const visited = new Set([target]);
const result = [];
let front = 0;
while (front < queue.length) {
const [node, distance] = queue[front++];
if (distance === k) {
result.push(node.val);
continue;
}
const neighbors = [
node.left,
node.right,
parent.get(node)
];
for (const next of neighbors) {
if (next && !visited.has(next)) {
visited.add(next);
queue.push([next, distance + 1]);
}
}
}
return result;
};