Level Order Traversal of a binary tree - Java
package tree;
public class TreeTraversal {
public static void main(String[] args) {
Node node = new Node(40);
node.left = new Node(35);
node.right = new Node(50);
node.left.left = new Node(30);
node.left.right = new Node (38);
levelOrder(node);
}
public static void levelOrder(Node root) {
if(root == null) return;
int height = height(root);
for (int i = 1; i <= height; i++) {
printLevelOrder(root, i);
}
}
public static void printLevelOrder(Node node, int level){
if(node == null) return;
if(level == 1) System.out.print(node.value);
else if(level > 1){
printLevelOrder(node.left, level-1);
printLevelOrder(node.right, level-1);
}
}
public static int height(Node node) {
if(node == null) return 0;
int lHeight = height(node.left);
int rHeight = height(node.right);
if(lHeight > rHeight)
return lHeight + 1;
else
return rHeight + 1;
}
}
class Node{
Node left;
Node right;
int value;
public Node(int value){
this.value = value;
}
}
Explanation:
1. levelOrder(40) --->
public class TreeTraversal {
public static void main(String[] args) {
Node node = new Node(40);
node.left = new Node(35);
node.right = new Node(50);
node.left.left = new Node(30);
node.left.right = new Node (38);
levelOrder(node);
}
public static void levelOrder(Node root) {
if(root == null) return;
int height = height(root);
for (int i = 1; i <= height; i++) {
printLevelOrder(root, i);
}
}
public static void printLevelOrder(Node node, int level){
if(node == null) return;
if(level == 1) System.out.print(node.value);
else if(level > 1){
printLevelOrder(node.left, level-1);
printLevelOrder(node.right, level-1);
}
}
public static int height(Node node) {
if(node == null) return 0;
int lHeight = height(node.left);
int rHeight = height(node.right);
if(lHeight > rHeight)
return lHeight + 1;
else
return rHeight + 1;
}
}
class Node{
Node left;
Node right;
int value;
public Node(int value){
this.value = value;
}
}
Explanation:
1. levelOrder(40) --->
Comments
Post a Comment