Okay, this is partly a question, and partly an explanation to some people.
Firstly. Trees grow underground, provided there are either torches around the sapling you plant, on at least 4 sides, and one block below the 'ground' block. (Ground blocks are the dirt-looking ones). And at the same time, make sure the tree has at least 2 blocks to grow on either side, and about 6 blocks up (a 5x5x6 block so to speak, taking the middle block of the sapling into consideration)
(G = Ground block , S= Sapling, T=Torch, L=Lava, | = Empty Space <needed>)
From 1st person view:
Same trick works with lava, just make sure the lava is either 1 block below the sapling's ground block, or on the same leve and around it
From first person:
Now, here comes my question. If I put Glass, as a walkable surface, just above the lava (as in the second example, in level with the ground block) Will the sapling grow into a tree? Or does Glass obstruct Light?