   # How to print leaf nodes of a binary tree?

356 views

How to print leaf nodes of a binary tree? Sample code in C/C++ would be helpful? posted Jan 27, 2016

The logic here is simple. Recursively go through left and then right elements, when the base condition is met (i.e, when r==null), add a check to see if the node’s left and right wings are null and if they are null print the value of the node.
Input binary search tree: ``````// print leaf nodes
public void leafNodes(BinaryNode r) {
if(r!= null) {
leafNodes(r.left);
leafNodes(r.right);

if(r.left == null && r.right == null) {
System.out.println(r.element);
}
}
}
``````

Note: This logic is same is recursive post order traversal, but instead of just printing the node value after left&right traversals we check to see if left&right children are null and then print the node value. answer Jan 28, 2016

to print leaf nodes in a binary tree in java

### Algorithm

Steps for counting number of leaf nodes are:

If node is null then return 0
If encounterd leaf node(i.e. node.left is null and node.right is null) then print the node.
Recursively visit leaf subtree and right subtree.

### Code for recursion will be:

``````// print leaf nodes
public static void printLeafNodes(TreeNode node) {

if(node==null)
return;

if(node.left == null && node.right == null) {
System.out.printf("%d ",node.data);
}
printLeafNodes(node.left);
printLeafNodes(node.right);
}
`````` answer Jan 28, 2016

public static void printLeafNodes(BinaryNode t)
{
if(t == NULL)
return;
if(t.left == NULL && t.right==NULL)
System.out.println(t.element);
else if(t.left != NULL && t.right == NULL)
printLeafNodes(t.left);

``````   else
printLeafNodes(t.right);
``````

}
void printLeafNodes(BinaryTreeNode* treePtr) {
if(treePtr.leftChild == null && treePtr.rightChild == null) {
//This is a leaf node; print its value
} else {
//Recurse on right subtree
if(treePtr.rightChild != null) {
printLeafNodes(treePtr.rightChild);
}
//Recurse on left subtree
if(treePtr.leftChild != null) {
printLeafNodes(treePtr.leftChild);
}
}
} answer Feb 11, 2016
Similar Questions