(新人)java 二叉树删除

为什么我的代码如果的第一种情况下,要是先删除左面的,右面就没法删除(我用的是gui界面)
例如
            50
        30        60
    13  31
    如果我先删除13,再删除31的时候就会出错
public boolean deleteNode(Node node) {      
    //Implementation Here...
    if(root == null)
    {
        System.out.println("the tree is empty");
        return false;
    }
    //delete node without any child
        if(node.getLeft() == null && node.getRight() == null)
            {
            if(node.getValue() == root.getValue())
            {
                root = null;
                return true;
            }

            else if(node.getParent().getLeft().getValue() == node.getValue())
                {
                node.getParent().setLeft(null);
                node = null;
                }
            else if(node.getParent().getRight().getValue() == node.getValue())
            {
                node.getParent().setRight(null);
                node = null;
            }

        }
        Node curnode = null;  
        if(node.getRight() == null ){  
            curnode = node;  
            node = node.getLeft();  
        }  
        else if(node.getLeft() == null && node.getRight() != null){  
            curnode = node;  
            node = node.getRight();  
        }  
        else{  
            curnode = node;  
            Node tempnode = node;  
            tempnode = tempnode.getLeft();  
            while(tempnode.getRight() != null){  
                curnode = tempnode;  
                tempnode = tempnode.getRight();  
            }  
            node.setValue(tempnode.getValue());  
            if(curnode != node){  
                curnode.setRight(tempnode.getLeft());  
            }  
            else{  
                curnode.setLeft(tempnode.getLeft());  
            }  
        }
                //The two variables below are for GUI use only. 
    select_node_value = -1; 
    selected_node = null;
    return true;        
}

老大,你的代码里面尿点太多,你没有碰到异常算你万幸,要改的话很多地方要动,只好贴个正常的代码,你自己仔细比较一下,体会体会,加深印象
图文并茂的代码地址:http://blog.csdn.net/sun_ru/article/details/51841648