Java Печать бинарного дерева с использованием уровня порядка в определенном формате

Хорошо, я прочитал все другие связанные вопросы и не могу найти тот, который помогает с Java. Я получаю общую идею от расшифровки того, что я могу на других языках; но мне еще предстоит разобраться.

Проблема: я хотел бы выровнять сортировку (которая у меня работает с использованием рекурсии) и распечатать ее в общей форме дерева.

Так скажи, у меня есть это:

    1 
   / \
  2   3
 /   / \
4   5   6

Мой код распечатывает порядок уровней следующим образом:

1 2 3 4 5 6

Я хочу напечатать это так:

1
2 3
4 5 6

Теперь, прежде чем вы произнесете мне моральную речь о выполнении моей работы ... Я уже закончил свой проект AP Comp Sci, и мне стало любопытно, когда мой учитель упомянул о Breadth First Search.

Я не знаю, поможет ли это, но вот мой код:

/**
  * Calls the levelOrder helper method and prints out in levelOrder.
  */
 public void levelOrder()
 {
  q = new QueueList();
  treeHeight = height();
  levelOrder(myRoot, q, myLevel);
 }

 /**
  * Helper method that uses recursion to print out the tree in 
  * levelOrder
  */
 private void levelOrder(TreeNode root, QueueList q, int curLev)
 {
  System.out.print(curLev);
  if(root == null)
  {
   return;
  }

  if(q.isEmpty())
  {
   System.out.println(root.getValue());
  }
  else
  {
   System.out.print((String)q.dequeue()+", ");
  }

  if(root.getLeft() != null)
  {
   q.enqueue(root.getLeft().getValue());
   System.out.println();
  }
  if(root.getRight() != null)
  {
   q.enqueue(root.getRight().getValue());
   System.out.println();
   curLev++;
  }

  levelOrder(root.getLeft(),q, curLev);
  levelOrder(root.getRight(),q, curLev);
 }

Из того, что я могу понять, мне нужно будет использовать общую высоту дерева и использовать счетчик уровня ... Единственная проблема заключается в том, что мой счетчик уровня продолжает считать, когда мой levelOrder использует рекурсию для возврата через дерево.

Извините, если это слишком много, но некоторые советы были бы хорошими. :)

Ответы на вопрос(22)

Ваш ответ на вопрос