diff --git a/traverals/binary_tree_traversals.py b/traverals/binary_tree_traversals.py index c1e8783b2..591142b27 100644 --- a/traverals/binary_tree_traversals.py +++ b/traverals/binary_tree_traversals.py @@ -6,7 +6,6 @@ import queue class TreeNode: - def __init__(self, data): self.data = data self.right = None @@ -40,7 +39,8 @@ def build_tree(): def pre_order(node): - if not node: + if not isinstance(node, TreeNode) or not node: + print("Invalid input") return print(node.data, end=" ") pre_order(node.left) @@ -48,7 +48,7 @@ def pre_order(node): def in_order(node): - if not node: + if not isinstance(node, TreeNode) or not node: return in_order(node.left) print(node.data, end=" ") @@ -56,7 +56,7 @@ def in_order(node): def post_order(node): - if not node: + if not isinstance(node, TreeNode) or not node: return post_order(node.left) post_order(node.right) @@ -64,7 +64,7 @@ def post_order(node): def level_order(node): - if not node: + if not isinstance(node, TreeNode) or not node: return q = queue.Queue() q.put(node) @@ -79,6 +79,7 @@ def level_order(node): if __name__ == '__main__': import sys + print("\n********* Binary Tree Traversals ************\n") # For python 2.x and 3.x compatibility: 3.x has not raw_input builtin # otherwise 2.x's input builtin function is too "smart"