LC: Closest Leaf in a Binary Tree
https://leetcode.com/problems/closest-leaf-in-a-binary-tree/
742. Closest Leaf in a Binary Tree
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:
Input: root = [1,3,2], k = 1
Output: 2
Explanation: Either 2 or 3 is the nearest leaf node to the target of 1.Example 2:
Input: root = [1], k = 1
Output: 1
Explanation: The nearest leaf node is the root node itself.Example 3:
Input: root = [1,2,3,4,null,null,null,5,null,6], k = 2
Output: 3
Explanation: The leaf node with value 3 (and not the leaf node with value 6) is nearest to the node with value 2.Constraints:
The number of nodes in the tree is in the range
[1, 1000].1 <= Node.val <= 1000All the values of the tree are unique.
There exist some node in the tree where
Node.val == k.
The Essence:
Wenn eine Wurzel den Knoten mit dem gegebenen Wert in einem seiner Teilbäume enthält, dann ist das nächste Blatt entweder in dem Teilbaum mit dem Knoten oder ohne den Knoten. Man kann also den Baum in Richtung des gegebenen Knotens durchlaufen und dabei alle Elterknoten nach dem nächsten Blatt in ihren Teilbäumen durchsuchen. Man kann auch den gerichteten Baum in einen ungerichteten Graph umwandeln und dann von dem Knoten mit dem gegebenen Wert angefangen den Graphen durchsuchen, um das nächste Blatt zu bestimmen.
Details:
Der erste Ansatz kann durch Rekursion implementiert werden. Rekursion ist eine gute Lösungstechnik für viele Baumprobleme, da der Baum für Rekursion definitionsgemäß eine geeignete Datenstruktur ist. Man kann in der Graphlösung entweder Tiefensuche oder Breitensuche verwenden.
Solution(s) and Further Explanation:
Default Code:
Last updated