인프런 커뮤니티 질문&답변

Aurora님의 프로필 이미지
Aurora

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

9. Tree 말단노드까지의 까장 짧은 경로(DFS)

리턴 타입을 void로 해서 풀었는데 확인부탁드립니다.

작성

·

214

0

null이 아니면 계속 뻗어나가고 lt와 rt 둘다 null이면 answer 에다가 L의 최소값을 구해나가는 방식입니다.

성능의 차이가 있을까요?..

import java.util.*;
import java.io.*;

class Node {
  int data;
  Node lt, rt;
  public Node(int data) {
    this.data = data;
    lt = null;
    rt = null;
  }
}
public class Main {
  static int answer = Integer.MAX_VALUE;
  public static void dfs(int L, Node root) {
    if (root.lt == null && root.rt == null) {
      answer = Math.min(answer, L);
    } else {
      if (root.lt != null) dfs(L + 1, root.lt);
      if (root.rt != null) dfs(L + 1, root.rt);
    }
  }
  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    StringTokenizer st = null;
    Node root = new Node(1);
    root.lt = new Node(2);
    root.rt = new Node(3);
    root.lt.lt = new Node(5);
    root.lt.rt = new Node(6);
    dfs(0, root);
    System.out.println(answer);
  }
}

답변 1

1

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

성능상의 큰 차이는 없습니다.

Aurora님의 프로필 이미지
Aurora

작성한 질문수

질문하기