printing Kth level elements using iteration approach
import java.util.*;
public class KthLevelusingleveltraversal {
public static class Node {
int data;
Node left, right;
Node(int data) {
this.data = data;
this.left = null;
this.right = null;
}
}
public static void kthlevelordertraversal(Node root, int level, int k) {
if (root == null) {
return;
}
Queue<Node> q = new LinkedList<>();
q.add(root);
q.add(null);
while (!q.isEmpty()) {
Node currNode = q.remove();
if (currNode == null) {
level++;
if (q.isEmpty()) {
break;
} else {
q.add(null);
}
} else {
if (level == k) {
System.out.print(currNode.data + " ");
}
if (currNode.left != null) {
q.add(currNode.left);
}
if (currNode.right != null) {
q.add(currNode.right);
}
}
}
}
public static void main(String[] args) {
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.left = new Node(6);
root.right.right = new Node(7);
int k = 2;
kthlevelordertraversal(root, 1, k);
}
}
Comments
Post a Comment