Skip to content

Commit

Permalink
Create BSTlevelOrderTraversalHR.py
Browse files Browse the repository at this point in the history
  • Loading branch information
saksham101 authored Jun 25, 2020
1 parent 22b9015 commit 8822588
Showing 1 changed file with 74 additions and 0 deletions.
74 changes: 74 additions & 0 deletions BSTlevelOrderTraversalHR.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
"""
Task
A level-order traversal, also known as a breadth-first search, visits each level of a tree's nodes from left to right, top to bottom. You are given a pointer, , pointing to the root of a binary search tree. Complete the levelOrder function provided in your editor so that it prints the level-order traversal of the binary search tree.
Hint: You'll find a queue helpful in completing this challenge.
Input Format
The locked stub code in your editor reads the following inputs and assembles them into a BST:
The first line contains an integer, (the number of test cases).
The subsequent lines each contain an integer, , denoting the value of an element that must be added to the BST.
Output Format
Print the value of each node in the tree's level-order traversal as a single line of space-separated integers.
Sample Input
6
3
5
4
7
2
1
Sample Output
3 2 5 1 4 7
Explanation
The input forms the following binary search tree:
BST.png
We traverse each level of the tree from the root downward, and we process the nodes at each level from left to right. The resulting level-order traversal is , and we print these data values as a single line of space-separated integers.
"""
# SOLUTION
import sys

class Node:
def __init__(self,data):
self.right=self.left=None
self.data = data
class Solution:
def insert(self,root,data):
if root==None:
return Node(data)
else:
if data<=root.data:
cur=self.insert(root.left,data)
root.left=cur
else:
cur=self.insert(root.right,data)
root.right=cur
return root

def levelOrder(self,root):
#Write your code here
queue = [root]
for node in queue :
if node :
print(node.data , end=" ")
if node.left :
queue.append(node.left)
if node.right :
queue.append(node.right)

T=int(input())
myTree=Solution()
root=None
for i in range(T):
data=int(input())
root=myTree.insert(root,data)
myTree.levelOrder(root)

0 comments on commit 8822588

Please sign in to comment.