문제

전체코드
class Node {
char value;
Node left;
Node right;
Node(char value) {
this.value = value;
}
}
class Tree {
Node root;
void createNode(char value, char left, char right) {
if (root == null) {
root = new Node(value);
if(left != '.') {
root.left = new Node(left);
}
if(right != '.') {
root.right = new Node(right);
}
}
else {
linkNode(root, value, left, right);
}
}
void linkNode(Node node, char value, char left, char right) {
if (node == null) return;
if (node.value == value) {
if(left != '.') {
node.left = new Node(left);
}
if(right != '.') {
node.right = new Node(right);
}
}
else {
linkNode(node.left, value, left, right);
linkNode(node.right, value, left, right);
}
}
void preOrder (Node node) {
if (node != null) {
System.out.print(node.value);
preOrder(node.left);
preOrder(node.right);
}
}
void inOrder (Node node) {
if (node != null) {
inOrder(node.left);
System.out.print(node.value);
inOrder(node.right);
}
}
void postOrder (Node node) {
if (node != null) {
postOrder(node.left);
postOrder(node.right);
System.out.print(node.value);
}
}
}
public class BOJ1991 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
Tree tree = new Tree();
StringTokenizer st = null;
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
char val = st.nextToken().charAt(0);
char left = st.nextToken().charAt(0);
char right = st.nextToken().charAt(0);
tree.createNode(val, left, right);
}
tree.preOrder(tree.root);
System.out.println();
tree.inOrder(tree.root);
System.out.println();
tree.postOrder(tree.root);
}
}