Number of leaf nodes - Java

public class NumberOfLeafNodes {
    public static int getLeavesCount(TreeNode root){
        if(root == null){
            return 0;
        }

        if(root.getLeft() == null && root.getRight() == null)
            return 1;
        else
        return getLeavesCount(root.getLeft()) + getLeavesCount(root.getRight());
    }

    public static void main(String[] args) {
        TreeNode t1 = new TreeNode();
        TreeNode t2 = new TreeNode();
        TreeNode t3 = new TreeNode();
        TreeNode t4 = new TreeNode();
        TreeNode t5 = new TreeNode();
        TreeNode t6 = new TreeNode();

        t3.setLeft(t2).setRight(t4).setValue(3);
        t2.setLeft(t1).setRight(null).setValue(2);
        t1.setLeft(null).setRight(null).setValue(1);
        t4.setLeft(null).setRight(t5).setValue(4);
        t5.setLeft(null).setRight(t6).setValue(5);
        t6.setLeft(null).setRight(null).setValue(6);

        System.out.println(getLeavesCount(t3));
    }
}

public class TreeNode {
    private TreeNode left;
    private TreeNode right;
    private Object value;

    public TreeNode getLeft() {
        return left;
    }

    public TreeNode setLeft(TreeNode left) {
        this.left = left;
        return this;
    }

    public TreeNode getRight() {
        return right;
    }

    public TreeNode setRight(TreeNode right) {
        this.right = right;
        return this;
    }

    public Object getValue() {
        return value;
    }

    public TreeNode setValue(Object value) {
        this.value = value;
        return this;
    }
}

Output: 2

Comments

Popular posts from this blog

public vs protected vs default access modifiers - Java

Class, Reference and Object