java 树结构 顶级统计所有末级数量
时间: 2023-10-14 11:17:39 浏览: 43
可以通过遍历整个树结构,对每个节点判断其是否为末级节点,如果是则将计数器加一。如果要统计所有末级节点的数量,则需要对整个树结构进行遍历,将每个末级节点的数量累加起来。以下是一个示例代码:
```
public class TreeNode {
private List<TreeNode> children;
// 其他属性和方法省略
// ...
public int countLeafNodes() {
int count = 0;
if (this.children == null || this.children.isEmpty()) {
// 如果当前节点没有子节点,则为末级节点
count = 1;
} else {
// 如果当前节点有子节点,则遍历每个子节点
for (TreeNode node : this.children) {
count += node.countLeafNodes();
}
}
return count;
}
}
```
使用上述代码,可以对任何一个树结构进行遍历,并统计其中所有末级节点的数量。例如,以下是一个测试用例:
```
public static void main(String[] args) {
// 构建一个树结构
TreeNode root = new TreeNode();
TreeNode node1 = new TreeNode();
TreeNode node2 = new TreeNode();
TreeNode node3 = new TreeNode();
root.addChild(node1);
root.addChild(node2);
node1.addChild(node3);
// 统计末级节点数量
int count = root.countLeafNodes();
System.out.println("末级节点数量为:" + count);
}
```
在上述测试用例中,树结构的节点关系如下图所示:
```
root
├── node1
│ └── node3
└── node2
```
在这个树结构中,末级节点的数量应该为 2。运行测试用例后,程序会输出如下结果:
```
末级节点数量为:2
```