내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
해결책
알고리즘 아이디어
트리 구조의 목록이 어느 수준인지 결정하기 위해 각 노드를 재귀적으로 탐색하고 깊이를 계산할 수 있습니다. 구체적으로 각 노드에 대해 깊이 값을 누적하면서 루트 노드까지 상위 노드를 위쪽으로 탐색할 수 있습니다. 최종 깊이 값은 노드가 위치한 레벨입니다.
코드 예
다음은 트리 구조에서 노드의 수준을 결정하기 위한 간단한 Java 코드 예입니다.
public class TreeNode {
private int id;
private int parentId;
public TreeNode(int id, int parentId) {
this.id = id;
this.parentId = parentId;
}
public int getId() {
return id;
}
public int getParentId() {
return parentId;
}
}
public class TreeUtils {
public static int getLevel(TreeNode node, List<TreeNode> nodeList) {
int level = 1;
int parentId = node.getParentId();
while (parentId != 0) {
for (TreeNode n : nodeList) {
if (n.getId() == parentId) {
parentId = n.getParentId();
level++;
break;
}
}
}
return level;
}
}
public class Main {
public static void main(String[] args) {
List<TreeNode> nodeList = new ArrayList<>();
nodeList.add(new TreeNode(1, 0));
nodeList.add(new TreeNode(2, 1));
nodeList.add(new TreeNode(3, 1));
nodeList.add(new TreeNode(4, 2));
TreeNode node = nodeList.get(3);
int level = TreeUtils.getLevel(node, nodeList);
System.out.println("Node " + node.getId() + " is at level " + level);
}
}