我的搜索二叉树 出了一些大问题(删除的时候会丢掉子树)
public   void   deleteItem(   KeyedItem   target   )   throws   TreeException 
             { 
             	if(   target   ==   null   ) 
             	{ 
             		throw   new   TreeException(    "the   deference   is   null "   ); 
             	} 
             	TreeItem   delTemp   =   searchItem(   target   );//找寻节点              	 
             	if(   delTemp   ==   null   ) 
             	{ 
             		throw   new   TreeException(    "the   note   do   not   exsit!! "   ); 
             	} 
             	else 
             	{ 
             		if(   delTemp.getLeftTree()   ==   null   &&   delTemp.getRightTree()   ==   null   )//要删除的目标是叶子寄点 
             		{ 
             			TreeItem   delTempPar   =   binaryGetParent(   target   );//找到母节点 
             			DelSwitch(   delTempPar,   null   );//删除切换 
             		} 
             		else   if(   delTemp.getLeftTree()   ==   null   &&   delTemp.getRightTree()   !=   null   )//要删除的目标有右一个孩子 
             		{ 
             			TreeItem   delTempPar   =   binaryGetParent(   target   );//找到母节点 
             			DelSwitch(   delTempPar,   delTemp.getRightTree()   );//give   the   RightSubTree   to   the   mother   node 
             		} 
             		else   if(   delTemp.getLeftTree()   !=   null   &&   delTemp.getRightTree()   ==   null   )//要删除的目标有左一个孩子 
             		{ 
             			TreeItem   delTempPar   =   binaryGetParent(   target   );//找到母节点 
             			DelSwitch(   delTempPar,   delTemp.getLeftTree()   );//give   the   LeftSubTree   to   the   mother   node 
             		} 
             		else    
             		{ 
             			//找到替换内容的节点   就是要被删除的节点的右子树的最深度的左节点的内容 
             			TreeItem   plmP   =   processLeftMost(   delTemp.getRightTree()   ); 
             			//plmP.getSearchKey().display(); 
             			TreeItem   delTempPar   =   binaryGetParent(   plmP.getData()   );//找到拥有替换数据的母节点 
             			delTemp.setData(   plmP.getData()   );//将要删除的节点的数据用有用数据替换掉 
             			if(   plmP.getRightTree()   ==   null   )//是叶子节点 
             			{ 
             				delTempPar.setRightTree(   null   );//将这个最深左节点(叶子节点)删除 
             			} 
             			else 
             			{ 
             				delTempPar.setRightTree(   plmP.getRightTree()   ); 
             				System.out.println(    "********************** "   );