366 Find Leaves of Binary Tree
Given a binary tree, collect a tree's nodes as if you were doing this: Collect and remove all leaves, repeat until the tree is empty.
Explanation:
Removing the leaves [4, 5, 3] would result in this tree:
Now removing the leaf [2] would result in this tree:
Now removing the leaf [1] would result in the empty tree:
Returns [4, 5, 3], [2], [1]
.
The Idea: The height of any node is the longest path from the node to any leaf. Notice how we can use the height of the tree as a direct index to the solution. In other words, grouping and sorting the heights of the tree reveals the solution. Alternatively, we can map all common nodes to a particular height. Then we can iterate through all the heights in order to reveal the solution.
Complexity: O(n) time and space
Last updated