Well it doesn't matter how did you got your domain name, as long as you have one. But for free hosting there is problems. So the answer is yes, you can put AdSense on web site that have Top lvl domain name given to you for free
Yes, You can use adsense with a free domain or subdomain unless there are other competing contextual ads or excessive pop-ups