title: Given an unknown length list, return a random item in it by scanning it only 1 time
body: <p>Given an unknown length list, return a random item in it by scanning it only 1 time. </p>
  
  <p>My idea: </p>
  
  <p>A similar algorithm is Reservoir Sampling (posted by others). But, it is too complicated because it needs to run rand() and keep k nodes each iteration. </p>
  
  <p>Is there a better solution? O(n) time and O(1) space?</p>