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;
};
 

Comments