如何在java中进行二进制搜索树旋转?

如何在java中进行二进制搜索树旋转?,java,recursion,rotation,binary-search-tree,Java,Recursion,Rotation,Binary Search Tree,所以我正在为一个项目编写一个代码,在这个项目中,我将向左旋转一个节点,然后向右旋转,我已经将它写出来了,但是当我运行它时,出现了两个情况,我的向左旋转方法是向右旋转,而不是向左旋转,我尝试过改变它周围的东西,但仍然向右旋转,至于我的rotate right,当我尝试运行它时,我得到了null指针异常。我只能使用一个返回语句每个方法,必须做递归这里有两个方法,我在绝望中需要帮助 public void rotateLeft(int num) { root=rotateLeft(r

所以我正在为一个项目编写一个代码,在这个项目中,我将向左旋转一个节点,然后向右旋转,我已经将它写出来了,但是当我运行它时,出现了两个情况,我的向左旋转方法是向右旋转,而不是向左旋转,我尝试过改变它周围的东西,但仍然向右旋转,至于我的rotate right,当我尝试运行它时,我得到了null指针异常。我只能使用一个返回语句每个方法,必须做递归这里有两个方法,我在绝望中需要帮助

   public void rotateLeft(int num) {
      root=rotateLeft(root,num);


    }
    private static IntNode rotateLeft(IntNode T,int num){

      //easiest case
      if(T==null)
      {
      }
        //rotation part       
      else if(num==T.getNum())
      {
         IntNode oldRight=T.getRight();
         if(T.getRight()!=null){
          T.setRight(oldRight.getLeft());
         oldRight.setLeft(T);
         T=oldRight;
         }
         else {
         }
      }
       else if(num>T.getNum())
      {
         T.setRight(rotateLeft(T.getRight(),num));
      }
      //recursion
      else
      {
         T.setLeft(rotateLeft(T.getLeft(),num));
}


      return  T;




         }
  // Rotate the node containing num to the right -- do nothing if not possible
    public void rotateRight(int num) {
      root=rotateRight(root,num);
    }
    private static IntNode rotateRight(IntNode T,int num)
    {
      IntNode oldLeft=T.getLeft();

      //easiest case
      if(T==null)
      {

      }
      //rotation part
        else if(num==T.getNum())
      {
         if(T.getLeft()!=null){
          T.setLeft(oldLeft.getLeft());
         oldLeft.setRight(T);
         T=oldLeft;
         }
         else {
         }
      }
       else if(num>T.getNum())
      {
         T.setLeft(rotateRight(T.getLeft(),num));
      }
      else
      {
         T.setRight(rotateRight(T.getRight(),num));
}






     return T;

    }

如果调用了
rotateRight()
,并且
T
null
,会发生什么情况?我设法修复了我的rotate right方法,它只是我的左侧有问题,如果T为null,那么我不希望该方法在@ChuckB执行任何操作