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) --->


Comments

Popular posts from this blog

public vs protected vs default access modifiers - Java

Class, Reference and Object