Time duration in question
In Chinese grammar, duration goes after 'verb'. The placement of the object is flexible.


  [1. 你] [2. 学习] [3. 几年] [4. 汉语] [5. 了]
  
  [1. subject] [2. verb] [3. duration] [4. object] [5. final particle indicates completion]


~


  [1. 你] [2. 学习] [3. 汉语] [4. 几年] [5. 了]
  
  [1. subject] [2. verb] [3. object] [4. duration] [5. final particle indicates completion]


The difference between the two phrases is the placement of the object.


  After reading another thread here I though maybe there is a "hidden 的" and it could be 你学习了几年的汉语？?


The difference between "你学习几年汉语了？" and  "你学习了几年的汉语？" is:


"你学习几年汉语了？ emphasizes on the duration of the verb 学习 


Take away the object and write "你学习几年了?" (how many years have you been studying?) and the sentence is still grammatically correct.


"你学习了几年的汉语？" emphasizes on the qualification of the object. 


几年的 in 几年的汉语 qualifies the object 汉语;  take away the object and write: "你学习了几年的" (you have been studying for how many years of...?") would make the sentence incomplete.

As I stated before, the position of the object is flexible. You can even make it  a [topic] + [comment] sentence structure and write:


  "[汉语 (topic)] [你学习几年了 (comment)]


~


  Also could I place the 了 directly after the verb: 你学习了汉语几年？?


Yes, you can write [你学习了][汉语几年?] or [你学习了][几年汉语?]

The 了 after the verb is a particle indicates completion of the action, similar to [ed] in English 

你学习 = you study

你学习了 = you studied

[verb (学习了)] follows by the [object (汉语)] is within the grammar rules.