If you want to practice data structure and algorithm programs, you can go through 100+ java coding interview questions.
This is 8th part of java binary tree tutorial.
Java Binary tree tutorial:
 Binary tree in java
 Binary tree preorder traversal
 Binary tree postorder traversal
 Binary tree inorder traversal
 Binary tree level order traversal
 Binary tree spiral order traversal
 Binary tree reverse level order traversal
 Binary tree boundary traversal
 Print leaf nodes of binary tree
 Count leaf nodes in binary tree
 get maximum element in binary tree
 Print all paths from root to leaf in binary tree
 Print vertical sum of binary tree in java
 Get level of node in binary tree in java
 Lowest common ancestor(LCA) in binary tree in java
Algorithm

 If node is null then return 0
 If encountered leaf node(i.e. node.left is null and node.right is null) then return 1.
 Recursively calculate number of leaf nodes using
1 2 3 
Number of leaf nodes= number of leaf nodes in left subtree + number of leaf nodes in right sub tree 
1 2 3 4 5 6 7 8 9 10 11 12 13 
// Recursive Solution /* To get the count of leaf nodes in a binary tree*/ public static int getLeafCountOfBinaryTree(TreeNode node) { if(node == null) return 0; if(node.left ==null && node.right==null) return 1; else return getLeafCountOfBinaryTree(node.left)+ getLeafCountOfBinaryTree(node.right); } 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 
package org.arpit.java2blog.binarytree; public class BinaryTreeLeafCount { public static class TreeNode { int data; TreeNode left; TreeNode right; TreeNode(int data) { this.data=data; } } // Recursive Solution /* To get the count of leaf nodes in a binary tree*/ public static int getLeafCountOfBinaryTree(TreeNode node) { if(node == null) return 0; if(node.left ==null && node.right==null) return 1; else return getLeafCountOfBinaryTree(node.left)+ getLeafCountOfBinaryTree(node.right); } public static void main(String[] args) { // Creating a binary tree TreeNode rootNode=createBinaryTree(); System.out.println("Number of leaf nodes in binary tree :"+getLeafCountOfBinaryTree(rootNode)); } public static TreeNode createBinaryTree() { TreeNode rootNode =new TreeNode(40); TreeNode node20=new TreeNode(20); TreeNode node10=new TreeNode(10); TreeNode node30=new TreeNode(30); TreeNode node60=new TreeNode(60); TreeNode node50=new TreeNode(50); TreeNode node70=new TreeNode(70); rootNode.left=node20; rootNode.right=node60; node20.left=node10; node20.right=node30; node60.left=node50; node60.right=node70; return rootNode; } } 
1 2 3 
Number of leaf nodes in binary tree :4 