class Solution:
def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
if not head :
return
cur = head
n1 = ListNode()
while cur :
n2 = ListNode()
n1.val = cur.val
n2.next = n1
cur = cur.next
if not cur : return n1
else : n1 = n2
return n2

사실 실행할때마다 너무 크게 달라져서 Runtime은 의미가 없지만.. 시간복잡도를 n으로 했다는 것에 의미를 둬야겠다. 딱 한번만 리스트를 순회하며 역순의 리스트를 만들어 head를 리턴한다.