좋아, 그래서 노드에 int 값을 전달하는 기본 이진 검색 트리의 레벨 순서를 반환하는 메서드를 만들려고합니다. 나는 그런 삽입, 포스트 위해 사전 순서와 다른 방법의 대부분을 알아 냈어요,하지만 레벨 주문 방법 여기Java의 이진 검색 트리에서 수준 순회를 구현하려고 시도했습니다.
와 같은 문제로 실행 계속 코드입니다 :
private DoubleStackQueue<Node> queue = new DoubleStackQueue<Node>();
//this is a queue that uses two stacks, one for the front and one for the back.
//it works just like a queue.
public String levelOrder(){
s = ""; //The s is a private String that is implemented earlier
queue.add(this);
while (!queue.isEmpty())
{
Node node = (Node)queue.remove();
if (!(node.equals(null))) {s += ""+node.getVal();}
if (!(left.equals(null))) {queue.add(node.left);}
if (!(right.equals(null))) {queue.add(node.right);}
}
return s;
}
내가 겪고있는 주된 문제는 프로그램이 잎 노드에 도착할 때 자식 노드가 없어도 null을 계속해서 큐에 추가한다는 것입니다. 그래서 앞에서 두 개의 null이있는 큐를 가져옵니다. 실제 아이템의 나는 원래 if 문을 (왼쪽! = null) 등으로 가지고 있지만 그 중 하나는 작동하지 않았습니다. 저는 아이들이 없을 때 프로그램이 어떻게 인식되는지 알아 내려고합니다. 내가 무엇을해야 하나? 코드 내에서
'node.equals (NULL)이'항상 상관없이 실제로 예외없이 완료 어떤 경우는 false 수 없습니다. 그게 네 문제 야. – MeBigFatGuy