删除所有与 pattern 匹配的子树

c++
初学数据结构
程序可以运行,但无法执行操作
不知道是无法匹配的问题还是无法删除的问题
匹配完成后如何从相应节点开始删除?

void removeAll(BinaryTree pattern) //删除所有与pattern匹配的子树

 //删除所有与pattern匹配的子树

        public void removeAll(BinaryTree<T> pattern)
        {
            BinaryTreeNode<T> parent1 = parent(pattern.root);
            if(parent1!=null)
            {
                if(parent1.getleft().getdata().equals(pattern.root.getdata()))
                    parent1.set(parent1.getdata(),null,parent1.getright());
                else
                parent1.set(parent1.getdata(),parent1.getleft(),null);
                removeAll(pattern);
            }
        }