본문 바로가기
알고리즘(Java)/Recursive & Tree & Graph

[알고리즘]DFS - Tree 말단 노드까지의 가장 짧은 경로

by snowballchoi 2021. 8. 29.

아래 그림과 같은 이진트리에서 루트 노드 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

댓글