아래 그림과 같은 이진트리에서 루트 노드 1에서 말단노드까지의 길이 중 가장 짧은 길이를 구하는 프로그램
class Node {
int data;
Node lt, rt;
public Node(int val) {
this.data = val;
this.lt = this.rt = null;
}
}
public class Main {
Node root;
public int DFS(int level, Node root) {
if (root.lt==null && root.rt==null) return level;
else return Math.min(DFS(level+1, root.lt), DFS(level+1, root.rt));
}
public static void main(String[] args) {
Main tree = new Main();
tree.root = new Node(1);
tree.root.lt = new Node(2);
tree.root.rt = new Node(3);
tree.root.lt.lt = new Node(4);
tree.root.lt.rt = new Node(5);
System.out.println(tree.DFS(0, tree.root));
}
}
1
'알고리즘(Java) > Recursive & Tree & Graph' 카테고리의 다른 글
[알고리즘]Graph - 경로 탐색(인접행렬, DFS) (0) | 2021.08.30 |
---|---|
[알고리즘]BFS - Tree 말단 노드까지의 가장 짧은 경로 (0) | 2021.08.30 |
[알고리즘]BFS - 송아지 찾기 (0) | 2021.08.27 |
[알고리즘]BFS - 이진트리 순회 (0) | 2021.08.26 |
[알고리즘]DFS - 부분집합 구하기 (0) | 2021.08.26 |
댓글