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

김민규님의 프로필 이미지
김민규

작성한 질문수

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

DFS로 말단노드의 레벨값 구할때

작성

·

166

0

이진트리 노드의 하위노드가 한개만 한개는 없을 경우 안된다고 말씀하셨는데 실제로 실습을 해보았을때도 안되더라구여

왜 안되는지 이유를 알고 싶습니다

예를 들어

If(root.lt==null && root.rt ==null) return L;

else if(root.lt==null && root.rt != null) return DFS(L+1, root.lt);

else if(root.lt !=null && root.rt == null) return DFS(L+1, root.rt);

else return Math.min(DFS(L+1, root.lt), DFS(L+1, root.rt);

이렇게 했을 경우 하위노드에 있는 하위노드 두개가 있는건 하위노드로 접근했을 때 값이 존재 했는데 하위노드가 한개 있을 경우 하위노드가 존재하는 노드를 dfs로 재귀했을경우 null값으로 되어서 이게 왜 이렇게 되는건지 알고 싶습니다.

답변 1

0

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

안녕하세요^^

아래 코드처럼 바꾸세요.

else if(root.lt==null && root.rt != null) return DFS(L+1, root.rt);

rt쪽에 자식노드가 있으니 그곳으로 DFS를 호출해야 합니다.

 

김민규님의 프로필 이미지
김민규

작성한 질문수

질문하기