class ListNode:
def __init__(self, v=0, next=None):
self.v = v
self.next = next
class Solution:
def swapPairs(self, head: ListNode) -> ListNode:
r = f = ListNode(None)
f.next = head
while head and head.next:
str = head.next
head.next = str.next
str.next = head
f.next = str
head = head.next
f = f.next.next
return r.next
if __name__=="__main__":
solution = Solution()
head = ListNode(1,ListNode(2, ListNode(3, ListNode(4, None))))
re = solution.swapPairs(head)
go = re
while go is not None:
print(go.v, end = " ")
go = go.next
문제
연결된 목록이 주어지면 인접한 두 노드 마다 교환하고 헤드를 반환한다. 목록 노드으ㅣ 값을 수정하지 않고 문제를 해결해야 한다.
풀이 방법
연결리스트를 파이썬리스트로 만들고 나서 해당 리스트의 인덱스를 1부터 2씩 증가시켜 스왑하는 방식으로 구현했다.
그리고 나서 스왑된 배열을 다시 배열리스트로 만들어 답을구했다.
느낀점
연결리스트를 자세하게 알게되었다.