При наличии отношений parent
, left
child и right
child обход дерева зависит от того, когда вы visit
родительский и получили доступ к строковому значению.
Учитывая root
дерева вызовите его следующим образом:
String s = traverse(root, "");
System.out.println(s);
public static String traverse(Node n, String s) {
if (n == null) {
return s;
}
// s += n.value; // uncomment this assignment for preorder traversal
s = traverse(n.left,s);
// s += n.value; // uncomment this assignment for inorder traversal
s = traverse(n.right,s);
// s += n.value; // uncomment this assignment for postorder traversal
return s;
}
Таким образом, в вашем методе вы можете передать флаг или enum
и указать назначение на основе этого значения, тем самым адаптируя ваш метод на любой обход.