Ява.яз.исключение NullPointerException после перебалансировки вставка в Авл-дерево
вот мой код
в основном t это корень Т.вставка(вал , Т.корень);
public AvlNode insert (int value, AvlNode t) { AvlNode newNode =new AvlNode(value); // Find the node and it's parent. AvlNode current = root; AvlNode parent = null; boolean isLeft = false; if(root==null) root=newNode; else { while (current != null) { if (value > current.getValue()) { parent = current; current = current.getRight(); isLeft=false; } else if (value < current.getValue()) { parent = current; current = current.getLeft(); isLeft=true; } else break; } if(isLeft) parent.setLeft(newNode); else parent.setRight(newNode); } //check the balance if(t.getLeft()!=null &&t.getRight()!=null) { if(getDepth(t.getLeft())-getDepth(t.getRight()) >= 2) { if(value<t.getLeft().getValue()) singleRotateWithLeft( t,true ); else doubleRotateWithLeft( t ); } else if(getDepth(t.getRight())-getDepth(t.getLeft()) >= 2){ if(value>t.getRight().getValue()) singleRotateWithRight(t,true); else doubleRotateWithRight( t ); } } return newNode; private int getDepth( AvlNode st ) { if ( st == null ) return 0; else { return 1+ Math.max( getDepth( st.left ), getDepth( st.right ) ); } }
Что я уже пробовал:
я попытался справиться с этим исключением с помощью если(т.getLeft()!=нуль &амп;&амп;Т.окно getright()!=нуль)
Richard MacCutchan
Используйте свой отладчик, чтобы выяснить, где и почему возникает ошибка.