code: def reverse(self):
          
          result = plist()
          head = self
          while head:
              result = result.cons(head.first)
              head = head.rest
  
          return result
docs: Return a reversed version of list. Runs in O(n) where n is the length of the list.
  
          >>> plist([1, 2, 3]).reverse()
          plist([3, 2, 1])
  
          Also supports the standard reversed function.
  
          >>> reversed(plist([1, 2, 3]))
          plist([3, 2, 1])