File tree Expand file tree Collapse file tree 1 file changed +64
-0
lines changed
Tree Traversal/BFS/Python Expand file tree Collapse file tree 1 file changed +64
-0
lines changed Original file line number Diff line number Diff line change
1
+ """
2
+ Ref: https://www.geeksforgeeks.org/level-order-tree-traversal/
3
+
4
+ """
5
+
6
+ # Recursive Python program for level order traversal of Binary Tree
7
+
8
+ # A node structure
9
+ class Node :
10
+
11
+ # A utility function to create a new node
12
+ def __init__ (self , key ):
13
+ self .data = key
14
+ self .left = None
15
+ self .right = None
16
+
17
+
18
+ # Function to print level order traversal of tree
19
+ def printLevelOrder (root ):
20
+ h = height (root )
21
+ for i in range (1 , h + 1 ):
22
+ printGivenLevel (root , i )
23
+
24
+
25
+ # Print nodes at a given level
26
+ def printGivenLevel (root , level ):
27
+ if root is None :
28
+ return
29
+ if level == 1 :
30
+ print "%d" % (root .data ),
31
+ elif level > 1 :
32
+ printGivenLevel (root .left , level - 1 )
33
+ printGivenLevel (root .right , level - 1 )
34
+
35
+
36
+ """ Compute the height of a tree--the number of nodes
37
+ along the longest path from the root node down to
38
+ the farthest leaf node
39
+ """
40
+ def height (node ):
41
+ if node is None :
42
+ return 0
43
+ else :
44
+ # Compute the height of each subtree
45
+ lheight = height (node .left )
46
+ rheight = height (node .right )
47
+
48
+ #Use the larger one
49
+ if lheight > rheight :
50
+ return lheight + 1
51
+ else :
52
+ return rheight + 1
53
+
54
+ # Driver program to test above function
55
+ root = Node (1 )
56
+ root .left = Node (2 )
57
+ root .right = Node (3 )
58
+ root .left .left = Node (4 )
59
+ root .left .right = Node (5 )
60
+
61
+ print "Level order traversal of binary tree is -"
62
+ printLevelOrder (root )
63
+
64
+ #This code is contributed by Nikhil Kumar Singh(nickzuck_007)
You can’t perform that action at this time.
0 commit comments