在此示例中,我们将学习使用Java计算树中叶节点的数量。
class Node {
int item;
Node left, right;
public Node(int key) {
item = key;
left = right = null;
}
}
class Main {
//树根
Node root;
Main() {
root = null;
}
//计算叶节点的方法
public static int countLeaf(Node node) {
if(node == null) {
return 0;
}
//如果节点的左、右为空
//它是叶节点
if (node.left == null && node.right == null) {
return 1;
}
else {
return countLeaf(node.left) + countLeaf(node.right);
}
}
public static void main(String[] args) {
//创建一个Tree对象
Main tree = new Main();
//创建树的节点
tree.root = new Node(5);
tree.root.left = new Node(3);
tree.root.right = new Node(8);
//创建左子节点的子节点
tree.root.left.left = new Node(2);
tree.root.left.right = new Node(4);
//创建右子节点的子节点
tree.root.right.left = new Node(7);
tree.root.right.right = new Node(9);
//调用方法以计算叶节点
int leafNodes = countLeaf(tree.root);
System.out.println("叶节点总数 = " + leafNodes);
}
}输出结果
叶节点总数 = 4

在上面的示例中,我们已经用Java实现了树数据结构。在这里,我们使用递归来计算树中叶节点的数量。