루트 노드 1에서 말단 노드까지의 길이 중 가장 짧은 길이를 구하시오.
가장 짧은 경로를 DFS로 푸는건 매우 비효율적이나 학습을 위한 문제풀이임.
import java.util.*;
class Node {
int data;
Node lt, rt;
public Node(int val) {
data=val;
lt=rt=null;
}
}
public class Main {
Node root;
public int DFS(int L, Node root) {
if(root.lt == null && root.rt == null) return L;
else return Math.min(DFS(L+1, root.lt), DFS(L+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));
}
}
'Algorithm > inflearn' 카테고리의 다른 글
★경로 탐색(인접 행렬, DFS) (0) | 2021.09.30 |
---|---|
Tree 말단노드까지의 가장 짧은 경로(BFS) (0) | 2021.09.30 |
★송아지 찾기1(BFS) (0) | 2021.09.29 |
이진트리 레벨탐색(BFS) (0) | 2021.09.29 |
★부분집합 구하기(DFS) (0) | 2021.09.29 |