Find objects that don't have a child object

Hello!

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 ob.children.name=='counter':
            count = crosshair.addObject('counter', ob, 0)
            count.setParent(ob)

But this constantly adds new objects to the scene.

Thanks for any reply.