Есть несколько способов пройти через двоичное дерево. Например, вы можете сначала получить детей, или вы можете получить левых детей, затем родителей, а затем правых детей.
Предположим, у вас есть класс Node с полями value
, leftChild
и rightChild
. Пример кода Java для обхода leftchild-parent-rightchild:
public List<Node> traverseTree (Node parentNode) {
List<Node> nodes = new LinkedList<Node> ();
if (parentNode.hasLeftChild ()) {
nodes.addAll (traverseTree (parentNode.getLeftChild ()));
}
nodes.add (parentNode);
if (parentNode.hasRightChild ()) {
nodes.addAll (traverseTree (parentNode.getRightChild ()));
}
return nodes;
}