파이썬 알고리즘 인터뷰 책을 정리한 포스트 입니다.
페어의 노드 스왑
입력
1 | 1 -> 2 -> 3 -> 4 |
출력
1 | 2 -> 1 -> 4 -> 3 |
값만 교환
1 | def swapPaire(self, head): |
연결 리스트의 노드를 변경 하는 것이 아닌 노드의 값을 변경하는 방식이다. 연결 리스트는 노드의 연결로 이뤄지기 때문에 단순히 노드의 값만 변경하는 것은 실용적이지 않다.
반복 구조로 스왑
1 | def swapPairs(self, head: ListNode): |

b가 a(head)를 가리키도록 하고 a는 b의 next를 가리킨다. a의 이전 노드 prev가 b를 가리키게 하고, prev를 두 칸 이동한다.
재귀 구조로 스왑
1 | def swapPairs3(self, head:ListNode): |

포인터 역할을 하는 p 하나만 사용해서 문제를 해결한다. 반복 구조를 재귀로 개선하였다.