Skip to content

Commit e2fbcf9

Browse files
committed
iterative method level wise
1 parent 19c9709 commit e2fbcf9

File tree

1 file changed

+41
-18
lines changed

1 file changed

+41
-18
lines changed

Trees/levelOrderbtree.java

Lines changed: 41 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import java.util.Queue;
22
import java.util.*;
3+
34
class Node {
45
int data;
56
Node left;
@@ -22,15 +23,13 @@ class BinaryTree {
2223
this.root = new Node(data);
2324
}
2425

25-
int height(Node root)
26-
{
26+
int height(Node root) {
2727
if (root == null)
2828
return -1;
2929
return 1 + Math.max(height(root.left), height(root.right));
3030
}
3131

32-
void printAtLevel(Node root, int level)
33-
{
32+
void printAtLevel(Node root, int level) {
3433
if (root == null)
3534
return;
3635
if (level == 1) {
@@ -41,8 +40,7 @@ void printAtLevel(Node root, int level)
4140
printAtLevel(root.right, level - 1);
4241
}
4342

44-
void levrec(Node root)
45-
{
43+
void levrec(Node root) {
4644
if (root == null)
4745
return;
4846
int h = height(root);
@@ -51,30 +49,53 @@ void levrec(Node root)
5149
System.out.println();
5250
}
5351
}
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) {
5956
return;
6057
}
6158
Queue<Node> q = new LinkedList<>();
6259
q.add(root);
63-
while (!q.isEmpty())
64-
{
60+
while (!q.isEmpty()) {
6561
Node temp = q.remove();
6662
System.out.print(temp.data + " ");
67-
if (temp.left != null)
68-
{
63+
if (temp.left != null) {
6964
q.add(temp.left);
7065
}
71-
if (temp.right != null)
72-
{
66+
if (temp.right != null) {
7367
q.add(temp.right);
7468
}
7569
}
7670
System.out.println();
7771
}
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+
}
7899
}
79100

80101
class levelOrderbtree {
@@ -86,7 +107,9 @@ public static void main(String[] args) {
86107
bt.root.left.right = new Node(9);
87108
bt.root.right.left = new Node(7);
88109
bt.levrec(bt.root);
89-
//iterative
110+
// iterative
90111
bt.levitr(bt.root);
112+
bt.levlineitr(bt.root);
91113
}
114+
92115
}

0 commit comments

Comments
 (0)