A signal tower's floors are modeled as a binary tree, one level of the tree per floor. An observer standing to the right of the tower sees exactly one beacon per floor: the right-most node on that level. Report the value of the beacon seen on each floor, from the top floor down.
Line 1: an integer n, the number of tokens on the next line.
Line 2: n space-separated tokens describing a binary tree in level-order (breadth-first). The first token is the root's value. Reading left to right, keep a queue of already-created nodes; for each node taken from the front of the queue, the next two tokens are its left child then its right child, where the token null marks a missing child. Only non-null children are added to the queue. Trailing null tokens for absent children at the deepest level may be omitted. Every node value is an integer.
A single line: the right-most node value on each level from top to bottom, space-separated.
Example 1
Input
7 3 9 20 null null 15 7
Expected
3 20 7
Explanation
Level 0 right-most is 3, level 1 right-most is 20, level 2 right-most is 7. Output: 3 20 7.
Example 2
Input
4 1 2 3 4
Expected
1 3 4
Explanation
Levels are [1], [2,3], [4]. The right-most on each level is 1, 3, then 4 (the only node on the deepest level). Output: 1 3 4.
Ready to solve this?
Sign in to open the editor, run your code against the sample tests, and submit against the full test suite.
Sign in to solve →