int deletedNodeNumber = Integer.parseInt(br.readLine());
dfs(deletedNodeNumber);
---
private static void dfs(int deletedNodeNumber) {
tree.set(deletedNodeNumber, DELETED_NODE);
for (int i = 0; i < N; i++) {
if (tree.get(i) == deletedNodeNumber) {
dfs(i);
}
}
}
삭제될 노드 인덱스인데, 삭제될 부분은 별도
public static final int DELETED_NODE = -10000;
에 따라 음수 처리한다
그리고 삭제될 노드의 인덱스를 부모로 가지는 노드를 탐색
for (int i = 0; i < N; i++) {
if (tree.get(i) == deletedNodeNumber) {
dfs(i);
}
}
요 부분임.
암튼 탐색하여서, 해당 노드로 삭제처리를 위해 dfs 를 호출한다. 물론 매개변수는 삭제될 인덱스를 가져가야 할 것이다.