It's probably what's called a "pending code", meaning that the computer has stored it for you even though the light goes off. Use a code scanner to find out what's going on. Guessing won't do any good.
Check your sensors.
Need to check the EGR VALVE.
No, check it after the engine has not been running for at least 15 minutes.
Your check engine light will be on and you will feel bucking or jerking while you are accelerating. You will also have an idle surging, sudden stalling of the engine, and a sudden surge in speed while driving on the highway.
I would check your fuel filter...
Check the oil after the engine has not been run for at least 30 minutes.
if you disconnect the battery for at least 5 minutes then reconnect it ,it will reset the check engine light
Reset the Check Engine Light by disconnecting the battery for about 10 minutes.
you disconnect the battery for a couple minutes.
You can check it when the engine is cold and you should check the oil level in your engine when the engine has sat for at least 30 minutes. This way all the oil has drained back into the oil pan and you will get an accurate reading on the dipstick.
Disconnect the negative battery cable for about two minutes and that should reset your check engine light.
Try disconnecting the battery for about 10 minutes