• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

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

23.11.01 15:22 작성 조회수 86

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를 호출해야 합니다.