# BTBOUNDARY

Prerequisites: Binary tree, BT traversal. .

Problem: Given a binary tree, print the boundary nodes of it in an Anti-Clockwise direction, starting from the root.

The boundary encompasses:

• Left boundary (nodes on the left, excluding leaf nodes).
• Leaves (comprising solely the leaf nodes).
• Right boundary (nodes on the right, excluding leaf nodes).

Solution Approach: We can use a four-step process to print the boundary nodes of the binary tree in an Anti-Clockwise direction:

• Print the Root:
• Print the value of the root node.
• Print the Left Boundary (Top-Down):
• Recursively print the left boundary nodes in a top-down manner.
• Print each node before calling itself for the left subtree.
• Avoid printing leaf nodes to prevent duplicates in the output.
• Print the Leaves:
• Recursively print the leaf nodes in both the left and right subtrees.
• Avoid printing duplicate leaf nodes.
• Print the Right Boundary (Bottom-Up):
• Recursively print the right boundary nodes in a bottom-up manner.
• Print each node after calling itself for the right subtree.
• Avoid printing leaf nodes to prevent duplicates in the output.

Take a look at the code to understand how we’re avoiding the duplication.

Time Complexity: O(N), as we need to visit each node once.

Space Complexity: O(1), as we don’t need any extra space.