-
(17) 페어의 노드 스왑
★★ Normal
[LeetCode]
leetcode.com/problems/swap-nodes-in-pairs/
풀이법
1. 단순 swap
이게 왜 노말인지 모르겠다. 처음에 easy가 훨씬 더 어려웠다. 연결리스트를 그 때 처음 다뤄서 그런건가?
PYTHON
onlybooks/algorithm-interview
<파이썬 알고리즘 인터뷰> 95가지 알고리즘 문제 풀이로 완성하는 코딩 테스트. Contribute to onlybooks/algorithm-interview development by creating an account on GitHub.
github.com
JAVA
class Solution {public ListNode swapPairs(ListNode head) {ListNode cur = head;while(cur!=null && cur.next !=null){int tmp = cur.val;cur.val = cur.next.val;cur.next.val = tmp;cur = cur.next.next;}return head;}}2. 반복 구조로 스왑
음.. 1번 방법은 면접관이 안된다고 할 수도 있다고한다. 그래서 실제로 .next를 노드를 가르키게 구조적으로 바꿀 필요가 있다.
원래 처음에 이 생각을 했는데, 1번 풀이보고 와! 그러네 val값만 변경하면 되는데 !! 이러고 띠용했는데.. 다시 반전이다 띠용? 🧐
class Solution:def swapPairs(self, head: ListNode) -> ListNode:root = prev = ListNode()prev.next = headwhile head and head.next:b = head.nexthead.next = b.nextb.next = headprev.next = bhead = head.nextprev = prev.next.nextreturn root.next3. 재귀
class Solution:def swapPairs(self, head: ListNode) -> ListNode:if head and head.next:p = head.nexthead.next = self.swapPairs(p.next)p.next = headreturn preturn head위지원데이터 엔지니어로 근무 중에 있으며 데이터와 관련된 일을 모두 좋아합니다!. 특히 ETL 부분에 관심이 가장 크며 데이터를 빛이나게 가공하는 일을 좋아한답니다 ✨
'2021년 > 알고리즘' 카테고리의 다른 글
[파이썬 알고리즘 인터뷰] 역순 연결리스트 2 (1) 2021.03.31 [파이썬 알고리즘 인터뷰] 역순 연결리스트 (0) 2021.03.31 [파이썬 알고리즘 인터뷰] 역순 연결 리스트 (0) 2021.03.22 파이썬을 파이썬답게 (0) 2021.03.22 [파이썬 알고리즘 인터뷰] 두 정렬 리스트의 병합 (0) 2021.03.22