The python program demonstrates how to print the boundary traversal of a binary tree, which includes printing the left boundary, leaves, and right boundary nodes in a counter-clockwise order.
Problem Statement
Given a binary tree, print its boundary traversal in a counter-clockwise order in python.
Python Program to Print Boundary Traversal of Binary Tree
class TreeNode: def __init__(self, val): self.val = val self.left = None self.right = None def print_left_boundary(root): if root: if root.left: print(root.val, end=" ") print_left_boundary(root.left) elif root.right: print(root.val, end=" ") print_left_boundary(root.right) def print_leaves(root): if root: print_leaves(root.left) if not root.left and not root.right: print(root.val, end=" ") print_leaves(root.right) def print_right_boundary(root): if root: if root.right: print_right_boundary(root.right) print(root.val, end=" ") elif root.left: print_right_boundary(root.left) print(root.val, end=" ") def print_boundary_traversal(root): if root: print(root.val, end=" ") print_left_boundary(root.left) print_leaves(root) print_right_boundary(root.right) # Example Binary Tree root = TreeNode(1) root.left = TreeNode(2) root.left.left = TreeNode(3) root.left.right = TreeNode(4) root.right = TreeNode(5) root.right.left = TreeNode(6) root.right.right = TreeNode(7) print("Boundary Traversal:") print_boundary_traversal(root)
How it Works
The program defines a TreeNode
class to represent nodes in the binary tree. It then defines three functions to print the left boundary, leaves, and right boundary nodes separately. Finally, the print_boundary_traversal
function combines these three functions to print the complete boundary traversal of the binary tree in the required order.