Open a terminal and run the following to observe the commands interaction with the fs as they happen.
watch tree top/
mkdir -p top/{sub1,sub2,sub3}/{basement1,basement2,basement3}
touch top/{kitty,puppy}
touch top/{sub1,sub2,sub3}/{kitty,puppy}
touch top/{sub1,sub2,sub3}/{basement1,basement2,basement3}/{kitty,puppy}
find top/*/ -name puppy -type f -delete
# Or all the puppies and kitties
find top/*/ \( -name puppy -o -name kitty \) -type f -delete