public void addNode(Node n) { if (root == null) { root = n; System.out.println(n.data + " added as the root to the tree"); } else { Node current = root; Node parent; while (true) { parent = current; if (n.data < current.data) { current = current.lchild; if (current == null) { parent.lchild = n; return; } } else { current = current.rchild; if (current == null) { parent.rchild = n; return; } } } } }
private static Node deserialize(Queue<Node> q, Node node) { if (node == null) return null; node.lchild = deserialize(q, q.remove()); // left storage node.rchild = deserialize(q, q.remove()); // right storage return node; }