반응형
https://leetcode.com/problems/middle-of-the-linked-list/
1. 2022.01.24 시도
소요시간: 4분
class Solution {
public ListNode middleNode(ListNode head) {
if (head == null) {
return null;
}
ListNode slow = head;
ListNode fast = head.next;
while(fast != null && fast.next != null) {
slow = slow.next;
fast = fast.next.next;
}
if (fast == null) {
return slow;
}
return slow.next;
}
}
풀이 접근 과정
slow, fast로 하면 쉽게 가운데를 찾을 수 있다. 짝수개의 노드냐 홀수개의 노드냐에 따라 가운데 정의가 달라지기때문에 리턴할때 한번 구분하여 리턴했다.
느낀점
- 짧게 나타내면 이렇게 줄여볼 수 있다.
class Solution {
public ListNode middleNode(ListNode head) {
ListNode slow = head;
ListNode fast = head;
while(fast != null && fast.next != null) {
slow = slow.next;
fast = fast.next.next;
}
return slow;
}
}
알고리즘 정리노트: .leetcode(알고리즘 문제풀이 접근)
반응형
'알고리즘 풀이' 카테고리의 다른 글
.leetcode(841. Keys and Rooms) (0) | 2022.01.30 |
---|---|
.leetcode(657. Robot Return to Origin) (0) | 2022.01.27 |
.leetcode(125. Valid Palindrome) (0) | 2022.01.24 |
.leetcode(344. Reverse String) (0) | 2022.01.24 |
.leetcode(844. Backspace String Compare) (0) | 2022.01.22 |