forked from Annex5061/java-algorithms
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Count_Leaf_Nodes.java
59 lines (49 loc) · 1.69 KB
/
Count_Leaf_Nodes.java
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
public class Count_Leaf_Nodes {
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;
}
}
}