Find objects that don't have a child object


I’m wondering if there’s a simple way to find objects with a certain property in a certain scene that don’t have a child object.

Objects’ property: icon
Scene they’re in: crosshair

I’ve tried:

for ob in crosshair.objects:
    if 'icon' in ob:
        if not'counter':
            count = crosshair.addObject('counter', ob, 0)

But this constantly adds new objects to the scene.

Thanks for any reply.