Add boundary traversal of binary tree #5639
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR implements the boundary traversal algorithm for a binary tree as requested in the related issue. The boundary traversal is performed in three parts:
Left Boundary: Traverses the left boundary of the tree, excluding leaf nodes.
Leaf Nodes: Collects all leaf nodes from left to right.
Right Boundary: Traverses the right boundary of the tree, excluding leaf nodes, and adds the nodes in reverse order to ensure correct boundary order.
Both time complexity and space complexity of this implementation are O(n), where n is the number of nodes in the binary tree.
The boundary traversal is performed both iteratively and recursively, and edge cases such as single-node trees and trees without left or right subtrees are handled appropriately.
All methods in the test class passed the test.