File tree 1 file changed +6
-5
lines changed
1 file changed +6
-5
lines changed Original file line number Diff line number Diff line change 6
6
7
7
8
8
class TreeNode :
9
-
10
9
def __init__ (self , data ):
11
10
self .data = data
12
11
self .right = None
@@ -40,31 +39,32 @@ def build_tree():
40
39
41
40
42
41
def pre_order (node ):
43
- if not node :
42
+ if not isinstance (node , TreeNode ) or not node :
43
+ print ("Invalid input" )
44
44
return
45
45
print (node .data , end = " " )
46
46
pre_order (node .left )
47
47
pre_order (node .right )
48
48
49
49
50
50
def in_order (node ):
51
- if not node :
51
+ if not isinstance ( node , TreeNode ) or not node :
52
52
return
53
53
in_order (node .left )
54
54
print (node .data , end = " " )
55
55
in_order (node .right )
56
56
57
57
58
58
def post_order (node ):
59
- if not node :
59
+ if not isinstance ( node , TreeNode ) or not node :
60
60
return
61
61
post_order (node .left )
62
62
post_order (node .right )
63
63
print (node .data , end = " " )
64
64
65
65
66
66
def level_order (node ):
67
- if not node :
67
+ if not isinstance ( node , TreeNode ) or not node :
68
68
return
69
69
q = queue .Queue ()
70
70
q .put (node )
@@ -79,6 +79,7 @@ def level_order(node):
79
79
80
80
if __name__ == '__main__' :
81
81
import sys
82
+
82
83
print ("\n ********* Binary Tree Traversals ************\n " )
83
84
# For python 2.x and 3.x compatibility: 3.x has not raw_input builtin
84
85
# otherwise 2.x's input builtin function is too "smart"
You can’t perform that action at this time.
0 commit comments