二叉树之统计二叉树中叶子节点的个数
二叉树的叶子节点是既没有左子树又没有右子树的特殊的节点,使用递归我们可以方便的计算出共有多少叶子节点。
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {
}
TreeNode(int val) {
this.val = val;
}
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
public class NumberOfLeafs {
public static void main(String[] args) {
TreeNode treeNode = new TreeNode();
numberOfLeafs(treeNode);
}
private static Integer numberOfLeafs(TreeNode treeNode) {
int nodes=0;
if(treeNode==null){
return 0;
}
if(treeNode.left==null&&treeNode.right==null) {
return 1;
}else {
nodes+=numberOfLeafs(treeNode.left)+numberOfLeafs(treeNode.right);
}
return nodes;
}
}
static Integer nums=0;
private static void numberOfLeafs1(TreeNode treeNode) {
if(treeNode==null){
return;
}
if(treeNode.left==null&&treeNode.right==null){
nums++;
}
numberOfLeafs1(treeNode.left);
numberOfLeafs1(treeNode.right);
}