跳到主要内容

Java 程序:计算树中叶节点的数量

要理解这个示例,你需要了解以下 Java 编程 主题:

示例: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;
}

// 如果节点的左右节点都为 null
// 它是叶节点
if (node.left == null && node.right == null) {
return 1;
}
else {
return countLeaf(node.left) + countLeaf(node.right);
}
}

public static void main(String[] args) {

// 创建树的对象
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

树数据结构包含7个节点和4个叶节点的示意图

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

推荐阅读