강의

멘토링

커뮤니티

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

김동현님의 프로필 이미지
김동현

작성한 질문수

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

5. 이진트리순회(DFS : Depth-First Search)

Node root의 선언 위치

작성

·

235

0

안녕하세요. 문제를 다시 풀던 중 궁금점이 생겨 질문을 남기게 되었습니다. 본 강의에서 Node root를 메인 메서드 밖에 선언하였는데 아래 코드와 같이 

import java.util.*;
class Node{
int data;
Node lt, rt;
public Node(int n){
data = n;
lt = rt = null;
}
}

public class Practice{
public void DFS(Node root){
if(root == null)
return;
else{
DFS(root.lt);
System.out.print(root.data + " ");
DFS(root.rt);
}

}
public static void main(String[] args){
Practice t = new Practice();
Node root = new Node(1);
root.lt = new Node(2);
root.rt = new Node(3);
root.lt.lt = new Node(4);
root.lt.rt = new Node(5);
root.rt.lt = new Node(6);
root.rt.rt = new Node(7);
t.DFS(root);
}
}

Node root를 메인메소드 안에서 선언하여도 정상적으로 작동하는 것 처럼 보였습니다. 

1. 제가 올린 코드처럼 Node root를 메인메서드 안에 선언하는 것이 문제가 되는 부분이 있을까요?

2. 본 강의에서 처럼 Node root를 메인메서드 밖에다 선언하는 특별한 이유가 있나요?

3. 메인메서드 안에 선언하는 것과 밖에 선언하는 것에 차이점이 있나요?

답변 1

0

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

안녕하세요^^

저도 root 노드를 메인에서 선언한 것 같은데요. 

김동현님의 프로필 이미지
김동현

작성한 질문수

질문하기