Find the directories owned by root in a certain part of the tree:
# find . -depth -mindepth 1 -maxdepth 3 -type d -ls | awk '$5 ~ /root/ {print}'
7930 0 drwxr-xr-x 12 root root 115 Oct 11 16:44 ./562
3805069 0 drwxr-xr-x 3 root root 20 Oct 11 16:44 ./562/8562
7946 0 drwxr-xr-x 5 root root 46 Dec 8 23:52 ./563/6563
7947 0 drwxr-xr-x 3 root root 21 Oct 21 2008 ./563/6563/456563
3464735 0 drwxr-xr-x 2 root root 6 Sep 26 17:29 ./563/6563/436563
4075144 4 drwxr-xr-x 2 root root 4096 Dec 9 00:39 ./563/6563/2366563
Change all the ownership to www-data:
# find . -depth -mindepth 1 -maxdepth 3 -type d -exec chown www-data: {} \;
You could do this:
# cd .. && chown -R www-data: dirname
But we only suspect the problem at a certain level in the tree, and it would be way slow to recursively chown hundreds of millions of files.
you can also use -uid and -gid with newer versions of find.