Join the social network of Tech Nerds, increase skill rank, get work, manage projects...

• # How to Print All Leaf Node of Binary Tree

• 0
• 0
• 0
• 0
• 0
• 0
• 0
• 0
• 706
Comment on it

Hello Everyone!!!

In order to solve binary tree problem of leaf node, we should know that what is leaf node? Leaf node is node of the binary tree whose have no left and right child means whose left and right child is null. It is the last node of the binary tree. We can print the all leaf node of the binary tree using Recursion but we can print it without recursion.

Using Recursion:-

It is the easy way of printing the binary tree leaf node because we are apply the same algorithm for the left node and also for the right node and at last we combine the results.

Algorithm:-

1.If given node is null then return.

2.If left and right node are null, print .

3. Recursively visit left and right subtree.

``````public static void printLeafNodesOfBT(TreeNode node) {
if (node == null) {
return;
}

if (node.left == null && node.right == null) {
System.out.printf("%d ", node.value);
}

printLeafNodesOfBT(node.left);
printLeafNodesOfBT(node.right);
}

``````

We uses this block of code for printing the leaf node of the binary tree using recursion.

Using Iteration:-

It is another method for printing the leaf node of the binary tree using iteration. It is dificult to the recursion method.

Algorithm:-

1. Create the stack.

2. Push the root node.

3.Loop until stack is not empty.

4.Call stack.pop to get the last element and store its left and last child if they are not null.

5.If the left and last child is null, print the value.

``````public static void printLeafNodesOfBT(TreeNode root) {

if (root == null) {
return;
}
Stack<TreeNode> stack = new Stack<>();
stack.push(root);

while (!stack.isEmpty()) {
TreeNode node = stack.pop();

if (node.right != null) {
}

if (node.left != null) {
}

if (node.left == null && node.right == null) {
System.out.printf("%d ", node.value);
}

}

}

``````

Here is the program for printing all leaf node.

Program:-

``````
import java.util.Stack;
public class Main {

public static void main(String[] args) throws Exception {

// let's create a binary tree
TreeNode n10 = new TreeNode(10);
TreeNode n34 = new TreeNode(34);
TreeNode n43 = new TreeNode(43);
TreeNode n78 = new TreeNode(78);

TreeNode n25 = new TreeNode(25, n10, n34);
TreeNode n65 = new TreeNode(65, n43, n78);
TreeNode root = new TreeNode(50, n25, n65);
private static class TreeNode {
int value;
TreeNode left;
TreeNode right;

TreeNode(int data) {
this.value = data;
}

TreeNode(int data, TreeNode left, TreeNode right) {
this.value = data;
this.left = left;
this.right = right;
}

}
public static void printLeafNodesOfbt(TreeNode node) {
// base case
if (node == null) {
return;
}

if (node.left == null && node.right == null) {
System.out.printf("%d ", node.value);
}

printLeafNodesOfBT(node.left);
printLeafNodesOfBT(node.right);
}

/**
* Java method to print leaf nodes using iteration
*
* @param root
*
*/
public static void printLeafNodesOfBT(TreeNode root) {

if (root == null) {
return;
}
Stack<TreeNode> stack = new Stack<>();
stack.push(root);

while (!stack.isEmpty()) {
TreeNode node = stack.pop();

if (node.right != null) {
}

if (node.left != null) {
}

if (node.left == null && node.right == null) {
System.out.printf("%d ", node.value);
}

}

}
}

``````

Output:-

`10 34 43 78 `
`10 34 43 78 `

## 0 Comment(s)

OR
OR
Register

OR
Fill out the form below and instructions to reset your password will be emailed to you:

• Hire
• Post Projects

### Post Projects

• All at 0 Cost ....
• Post Tech Job
• Select Best Bidder
• Track the Project
• Approve Work and Pay safely
• Browse Nerds
• Work
• Find Projects Find Projects
• UI Design and UX
• Software Engineering
View more...
View less...
• Marketing
• General
• Manage
• Company Company

### Manage Company

• All at 0 Cost ....
• Manage Company and Employee Profiles
• Company wide Employee Productivity Reports
• Knowledge Sharing and Collaboration Tools
• Get Sales Lead and Bid for Tech Projects
• Send Invoices and Receive Payment Safely
• Learn
• Nerd Digest Nerd Digest
• UI Design and UX
• Software Engineering
View more...
View less...
• Marketing
• General
• Tech Q & A Tech Q & A
• UI Design and UX
• Software Engineering
View more...
View less...
• Marketing
• General