private void recursiveDeleteSinglePixelLeaf(QuadTreeNode node){
    	
    	if(node.isGrey()){
    		// Single pixel level children found
    		if( node.getChild(Position.northEast).getHeight() == 1 ){
    			
    			// Count the black pixel number of the four children
        		int countBlack = 0;
    			if( node.getChild(Position.northEast).isBlack() ){ countBlack++; }
    			if( node.getChild(Position.northWest).isBlack() ){ countBlack++; }
    			if( node.getChild(Position.southEast).isBlack() ){ countBlack++; }
    			if( node.getChild(Position.southWest).isBlack() ){ countBlack++; }
    			
    			if( countBlack < 2 ){ node.setWhite(true); node.setBlack(false); node.setGrey(false); }
    			else{ node.setWhite(false); node.setBlack(true); node.setGrey(false); }
    			
    		}
    		// No single pixel level children found
    		else{
    			recursiveDeleteSinglePixelLeaf(node.getChild(Position.northEast));
    			recursiveDeleteSinglePixelLeaf(node.getChild(Position.northWest));
    			recursiveDeleteSinglePixelLeaf(node.getChild(Position.southEast));
    			recursiveDeleteSinglePixelLeaf(node.getChild(Position.southWest));
    		}
    		
    	}
    	
    }