Level order traversal Line by Line Java
- Get link
- X
- Other Apps
PROGRAM TO PRINT LEVEL ORDER TRAVERSAL LINE BY LINE
import
java.util.LinkedList;
import
java.util.Queue;
public
class
LevelOrder
{
// A Binary Tree Node
static
class
Node
{
int
data;
Node left;
Node right;
// constructor
Node(
int
data){
this
.data = data;
left =
null
;
right =
null
;
}
}
// Iterative method to do level order traversal line by line
static
void
printLevelOrder(Node root)
{
// Base Case
if
(root ==
null
)
return
;
// Create an empty queue for level order tarversal
Queue<Node> q =
new
LinkedList<Node>();
// Enqueue Root and initialize height
q.add(root);
while
(
true
)
{
// nodeCount (queue size) indicates number of nodes
// at current level.
int
nodeCount = q.size();
if
(nodeCount ==
0
)
break
;
// Dequeue all nodes of current level and Enqueue all
// nodes of next level
while
(nodeCount >
0
)
{
Node node = q.peek();
System.out.print(node.data +
" "
);
q.remove();
if
(node.left !=
null
)
q.add(node.left);
if
(node.right !=
null
)
q.add(node.right);
nodeCount--;
}
System.out.println();
}
}
// Driver program to test above functions
public
static
void
main(String[] args)
{
// Let us create binary tree shown in above diagram
/* 1
/ \
2 3
/ \ \
4 5 6
*/
Node root =
new
Node(
1
);
root.left =
new
Node(
2
);
root.right =
new
Node(
3
);
root.left.left =
new
Node(
4
);
root.left.right =
new
Node(
5
);
root.right.right =
new
Node(
6
);
printLevelOrder(root);
}
}
OUTPUT:
1 2 3 4 5 6
- Get link
- X
- Other Apps
Comments
Post a Comment