Java 树形结构根据子节点code获取上级所有code
时间: 2024-12-11 18:19:33 浏览: 17
在Java中,如果你有一个树形数据结构,比如`TreeNode`或者`HashMap`关联父子节点,你可以通过递归的方式来查找某个子节点的所有上级节点的`code`。下面是一个简单的示例:
```java
public class TreeNode {
int code;
List<TreeNode> children; // 假设children列表存储了子节点
// 构造函数,getAncestors方法等...
}
public List<Integer> getAncestorCodes(TreeNode node, int targetCode) {
if (node == null || node.code == targetCode) return Collections.emptyList(); // 如果到达根节点或者目标码等于当前节点,则返回空列表
List<Integer> ancestors = new ArrayList<>();
ancestors.add(node.code); // 添加当前节点的code
for (TreeNode child : node.children) {
ancestors.addAll(getAncestorCodes(child, targetCode)); // 递归查询每个子节点的祖先
}
return ancestors;
}
```
这个方法会从给定的子节点开始,检查其是否为目标代码,如果是则直接返回;如果不是,它会将当前节点的代码添加到结果列表,并对每个子节点递归调用该方法。
阅读全文