It sounds like the thermostat. Is there coolant in the reservoir? Low coolant level will cause the no heat issue and can cause an overheating problem too.
Are there any signs of coolant leakage anywhere? How many miles? Once these questions are answered, we can suggest better solutions.
But, off the cuff:
1) if coolant level is full and appears in good condition (not cloudy, gunky, etc) then I would assume there are no leaks and replace the thermostat and top off with new coolant and give it a try.
2) if coolant is low or nonexistent in the reservoir, then inspection of radiator, water pump, and hose connections for leakage or damage. Then fix accordingly and replace thermostat as well.