Given the root of a binary tree, a target node that belongs to it, and an integer k, return the values of all nodes that are exactly k edges away from the target, in any order.
- The nodes may lie below the target, or reached by going up through its ancestors and down another branch
k = 0 returns just the targetfind(root, val) is provided: it returns the node with that value (all values are distinct)build(arr) turns a level-order array (with null for a missing child) into a tree, and toArray(root) turns a tree back into one.