a b不一定a就是父节点,现在只知道1一定是根节点,用java实现
时间: 2024-09-07 12:03:19 浏览: 36
双数组字典树的-java实现,用于敏感词过滤
在这种情况下,我们可以使用一个HashMap或者LinkedHashMap来存储节点之间的关系,其中键是节点ID,值是一个List或Set,用于存储该节点的所有子节点,包括可能的非父节点。由于我们只知道1是根节点,我们可以从这里开始遍历。
这是一个简单的Java实现示例,使用HashSet来避免子节点重复:
```java
import java.util.*;
public class TreeNode {
int id;
Set<Integer> children; // 子节点集合
public TreeNode(int id) {
this.id = id;
this.children = new HashSet<>();
}
public void addChild(int childId) {
if (childId != 1) { // 除了根节点,其他都是子节点
children.add(childId);
}
}
public static void main(String[] args) {
TreeNode root = new TreeNode(1); // 根节点
// 添加边,例如:root.addChild(2), root.addChild(3), ...
for (int node : root.children) {
System.out.println("Node " + node + " has " + root.getChildrenCount(node) + " direct children.");
}
}
private int getChildrenCount(int nodeId) {
return children.contains(nodeId) ? 1 : 0; // 返回当前节点是否是目标节点的直接子节点
}
}
```
在这个例子中,`getChildrenCount`方法检查目标节点是否在当前节点的子节点集合中,如果是,则返回1,否则返回0。
阅读全文