1
1
import java .util .Queue ;
2
2
import java .util .*;
3
+
3
4
class Node {
4
5
int data ;
5
6
Node left ;
@@ -22,15 +23,13 @@ class BinaryTree {
22
23
this .root = new Node (data );
23
24
}
24
25
25
- int height (Node root )
26
- {
26
+ int height (Node root ) {
27
27
if (root == null )
28
28
return -1 ;
29
29
return 1 + Math .max (height (root .left ), height (root .right ));
30
30
}
31
31
32
- void printAtLevel (Node root , int level )
33
- {
32
+ void printAtLevel (Node root , int level ) {
34
33
if (root == null )
35
34
return ;
36
35
if (level == 1 ) {
@@ -41,8 +40,7 @@ void printAtLevel(Node root, int level)
41
40
printAtLevel (root .right , level - 1 );
42
41
}
43
42
44
- void levrec (Node root )
45
- {
43
+ void levrec (Node root ) {
46
44
if (root == null )
47
45
return ;
48
46
int h = height (root );
@@ -51,30 +49,53 @@ void levrec(Node root)
51
49
System .out .println ();
52
50
}
53
51
}
54
- //iterative method single line
55
- void levitr (Node root )
56
- {
57
- if (root == null )
58
- {
52
+
53
+ // iterative method single line
54
+ void levitr (Node root ) {
55
+ if (root == null ) {
59
56
return ;
60
57
}
61
58
Queue <Node > q = new LinkedList <>();
62
59
q .add (root );
63
- while (!q .isEmpty ())
64
- {
60
+ while (!q .isEmpty ()) {
65
61
Node temp = q .remove ();
66
62
System .out .print (temp .data + " " );
67
- if (temp .left != null )
68
- {
63
+ if (temp .left != null ) {
69
64
q .add (temp .left );
70
65
}
71
- if (temp .right != null )
72
- {
66
+ if (temp .right != null ) {
73
67
q .add (temp .right );
74
68
}
75
69
}
76
70
System .out .println ();
77
71
}
72
+ // iterative level wise
73
+ void levlineitr (Node root )
74
+ {
75
+ if (root == null )
76
+ return ;
77
+ Queue <Node > q = new java .util .LinkedList <>();
78
+ q .add (root );
79
+ while (true ) {
80
+ int size = q .size ();
81
+ if (size == 0 )
82
+ break ;
83
+ // while(size>0)
84
+ for (int i = 0 ; i < size ; i ++)
85
+ {
86
+ Node temp = q .remove ();
87
+ System .out .print (temp .data + " " );
88
+ if (temp .left != null ) {
89
+ q .add (temp .left );
90
+ }
91
+ if (temp .right != null ) {
92
+ q .add (temp .right );
93
+ }
94
+ // size--;
95
+ }
96
+ System .out .println ();
97
+ }
98
+ }
78
99
}
79
100
80
101
class levelOrderbtree {
@@ -86,7 +107,9 @@ public static void main(String[] args) {
86
107
bt .root .left .right = new Node (9 );
87
108
bt .root .right .left = new Node (7 );
88
109
bt .levrec (bt .root );
89
- //iterative
110
+ // iterative
90
111
bt .levitr (bt .root );
112
+ bt .levlineitr (bt .root );
91
113
}
114
+
92
115
}
0 commit comments