stack-Next Greater Element python

                  class Solution(object): 
    def nextGreaterElements(self, nums):
        
        stack =[]
        res = [ -1 for _ in nums]
        
        for _ in range(2):
            for i, num in enumerate(nums):
                
                while stack and num > nums[stack[-1]]:
                    res[stack.pop()] = num
                    
                stack.append(i)
        return res
        
        
        
if __name__ == "__main__":
    m = Solution()
    nums = [1,2,1]
    print(m.nextGreaterElements(nums))