742. Closest Leaf in a Binary Tree
Problem description:
Given the root
of a binary tree where every node has a unique value and a target integer k
, return the value of the nearest leaf node to the target k
in the tree.
Nearest to a leaf means the least number of edges traveled on the binary tree to reach any leaf of the tree. Also, a node is called a leaf if it has no children.
Example 1:
1 | Input: root = [1,3,2], k = 1 |
Example 2:
1 | Input: root = [1], k = 1 |
Example 3:
1 | Input: root = [1,2,3,4,null,null,null,5,null,6], k = 2 |
Constraints:
- The number of nodes in the tree is in the range
[1, 1000]
. 1 <= Node.val <= 1000
- All the values of the tree are unique.
- There exist some node in the tree where
Node.val == k
.
Solution:
To find the leave in another half of tree, we need to build graph to find every node’s neighbor.
In the meantime, keep all the leaves in a set.
Do BFS to see which neighbor is the first leaf
1 | # Definition for a binary tree node. |
time complexity: $O(n)$
space complexity: $O(n)$
reference:
related problem: