Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 분할정복
- 자바 리트코드
- leetcode 1721
- 스프링 에러
- 파이썬
- DP
- leetcode
- dfs
- 리트코드 자바
- 인텔리제이 에러
- 스택
- 백준 16935
- 리트코드
- java 프로그래머스
- 백준 18222
- 자바
- 코딩테스트
- 백준
- 코테
- Java
- 자바 5464
- 그래프 자바
- 프로그래머스 java
- 프로그래머스
- 카카오
- daily challenge
- 리트코드 1557
- BFS
- java leetcode
- 구현
Archives
- Today
- Total
레벨업 일지
[Java] leetcode 1721. Swapping Nodes in a Linked List 본문
문제
https://leetcode.com/problems/swapping-nodes-in-a-linked-list/description/
알아야 할 개념
- 포인터 이동
풀이
풀이 알고리즘은 다음과 같다.
- k 번째 만큼 첫 번째 포인터 이동.
- 첫 번째 포인터의 next 가 null이 될때까지 두 번째 포인터 이동
- first second 포인터 교환
- 정답을 리턴한다.
코드
class Solution {
public ListNode swapNodes(ListNode head, int k) {
ListNode first, second, temp ;
int val;
first = head;
second = head;
while(k--> 1){ // k 번째 만큼 첫 번째 포인터 이동.
first = first.next;
}
temp = first;
while(temp.next != null){//첫 번째 포인터의 next 가 null이 될때까지 두 번째 포인터 이동
second = second.next;
temp = temp.next;
}
//swap first second 포인터 교환
val = first.val;
first.val = second.val;
second.val = val;
return head;
}
}
'알고리즘 > leetcode' 카테고리의 다른 글
[Java] leetCode 1557. Minimum Number of Vertices to Reach All Nodes (0) | 2023.05.18 |
---|---|
[Java] leetcode 30. Substring with Concatenation of All Words (0) | 2023.05.06 |
[Java] leetcode 307. Range Sum Query - Mutable (0) | 2023.05.04 |
[Java] leetcode 662. Maximum Width of Binary Tree (0) | 2023.04.20 |
leetcode 946. Validate Stack Sequences (0) | 2023.04.13 |
Comments