Minecraft wiki entry for Sapling, associated text: Oak needs at least 5 spaces above (3×3 column) to grow normally. If a block is present in the growth space (but not directly above the sapling), the tree still grows, but is forced to grow a large variant.
Birch needs at least 6 spaces above (3×3 column).
Spruce needs at least 7 spaces above (5×5 column) when placing a single sapling.
Giant spruce needs at least 14 spaces above (6x6 column) when planted as 4 saplings in a 2×2 square. Also requires the 4x4 area centered on the saplings at the same level to be empty.[1]
Jungle needs at least 5 spaces above (3×3 column) when placing a single sapling.
Giant jungle needs at least 11 spaces above (6x6 column) when planted as 4 saplings in a 2×2 square. Also requires the 4x4 area centered on the saplings at the same level to be empty.[1]
Acacia needs at least 6 spaces above (5×5 column).
Dark oak needs at least 7 spaces above (4×4 column) and must be planted as 4 saplings in a 2×2 square.