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