Я построил дерево, в котором я просто пересекаю вставленные значения, но вывод содержит дополнительный 0 из-за инициализации переменной.Если инициализация переменной удалена, то программа терминируется.
Вывод для следующего: 51 15 5 0
public class TreeImplementation {
public static class TreeDS{
TreeDS left;
TreeDS right;
int data;
}
public static TreeDS root = new TreeDS();
public static TreeDS insertInTree(TreeDS node,int value) {
if(node==null) {
node=new TreeDS();
node.data=value;
node.left=null;
node.right=null;
return node;
}
if(node.data>value) {
node.left=insertInTree(node.left,value);
}
else if(node.data<value) {
node.right=insertInTree(node.right,value);
}
return node;
}
public static void main(String[] args) {
insertInTree(root, 5);
insertInTree(root, 15);
insertInTree(root, 51);
inorder(root);
}
private static void inorder(TreeDS node) {
if(node!=null) {
inorder(node.left);
System.out.print(" "+node.data);
inorder(node.right);
}
}
}
В чем проблема с этим кодом?