Skip to content

Commit 98c8960

Browse files
authored
Merge pull request #2226 from rivkode/main
[rivkode] WEEK 07 solutions
2 parents 13022ec + 59d2955 commit 98c8960

1 file changed

Lines changed: 63 additions & 0 deletions

File tree

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
/**
2+
* Definition for singly-linked list.
3+
* public class ListNode {
4+
* int val;
5+
* ListNode next;
6+
* ListNode() {}
7+
* ListNode(int val) { this.val = val; }
8+
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
9+
* }
10+
*/
11+
12+
13+
/*
14+
1. ๋ฌธ์ œ ์ดํ•ด
15+
์ „๋‹ฌ๋ฐ›์€ ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ๋œ ๋ฆฌ์ŠคํŠธ ํ—ค๋“œ ๋ฐ˜ํ™˜
16+
17+
2. ์•Œ๊ณ ๋ฆฌ์ฆ˜
18+
์Šคํƒ, ์—ญ๋ฐฉํ–ฅ์ด๋ฏ€๋กœ ๊ฐ€์žฅ ์•„๋ž˜๊นŒ์ง€ ๋‚ด๋ ค๊ฐ€์„œ ๋‹ค์‹œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.
19+
๋‹ต์ง€ ์ฐธ๊ณ : ์Šคํƒ์œผ๋กœ ํ•ด๋„ ๋˜์ง€๋งŒ ๋ฐฉํ–ฅ๋งŒ ๋ฐ”๊พธ์–ด๋„ ๋œ๋‹ค.
20+
21+
3. ์˜ˆ์™ธ
22+
ํ—ค๋“œ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ
23+
24+
4. ๊ตฌํ˜„
25+
26+
ํ—ค๋“œ ๋„ ํ™•์ธ
27+
ํ—ค๋“œ๋ฅผ ์Šคํƒ์— ๋„ฃ๋Š”๋‹ค
28+
for loop๋ฅผ ๋Œ๋ฉด์„œ next ๊ฐ€ null ์ผ๋•Œ๊นŒ์ง€ ์Šคํƒ์— ๋„ฃ๋Š”๋‹ค
29+
30+
๋‹ค์‹œ ์Šคํƒ์˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰๋ถ€ํ„ฐ ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค.
31+
๋งŒ๋“  ๋ฆฌ์ŠคํŠธ์˜ ํ—ค๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
32+
33+
cur, prev ๋…ธ๋“œ๋ฅผ ๊ฐ ์ˆœ์„œ๋Œ€๋กœ ์ง€์ •ํ•˜์—ฌ ํฌ์ธํ„ฐ ๋ฐฉํ–ฅ์„ ๋ฐ”๊พธ์–ด์ค€๋‹ค.
34+
a. ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ์ž„์‹œ ์ €์žฅํ•œ๋‹ค
35+
b. ํ˜„์žฌ ๋…ธ๋“œ์˜ next ๋ฅผ ์ด์ „ ๋…ธ๋“œ๋กœ ์„ค์ •ํ•œ๋‹ค. (๋ฐฉํ–ฅ ๋ณ€ํ™˜)
36+
[๋ณ€ํ™˜์ด ๋๋‚ฌ์œผ๋ฏ€๋กœ ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ์œ„ํ•œ ์ดˆ๊ธฐํ™”๋ฅผ ํ•ด์•ผํ•จ]
37+
c. prev ๋ฅผ ํ˜„์žฌ์˜ ๋…ธ๋“œ์ธ cur ๋กœ ์ดˆ๊ธฐํ™” ํ•œ๋‹ค.
38+
d. cur ๋ฅผ ์‹ค์ œ ๋‹ค์Œ ๋…ธ๋“œ๋กœ ์ดˆ๊ธฐํ™” ํ•œ๋‹ค. ์ฆ‰ ํ•œ์นธ ๋’ค๋กœ ์ด๋™ํ•˜๊ฒŒ ๋˜๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ๋‹ค.
39+
40+
*/
41+
import java.util.*;
42+
43+
class Solution {
44+
public ListNode reverseList(ListNode head) {
45+
ListNode prev = null;
46+
ListNode cur = head;
47+
48+
// cur ์ด null ์ผ๋–„๊นŒ์ง€ ๋ฐ˜๋ณต๋ฃจํ”„
49+
while (cur != null) {
50+
// ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ํ˜„์žฌ์˜ ์ด์ „ ๋…ธ๋“œ๋กœ ๋ฐฉํ–ฅ์„ ๋ฐ”๊พธ๋ฉด ์ดˆ๊ธฐํ™”๋˜๋ฏ€๋กœ ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ์ž„์‹œ ๋…ธ๋“œ์— ํ• ๋‹น
51+
ListNode tempNext = cur.next;
52+
// ํ•ต์‹ฌ, ํ˜„์žฌ์˜ next ๋ฅผ prev ๋กœ ํ•จ์œผ๋กœ์จ ๋ฐฉํ–ฅ ๋ณ€ํ™˜
53+
cur.next = prev;
54+
// ํ˜„์žฌ ๋…ธ๋“œ๋ฅผ prev ์— ํ• ๋‹น, prev ์ดˆ๊ธฐํ™”
55+
prev = cur;
56+
// ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ cur ์— ํ• ๋‹น, cur ์ดˆ๊ธฐํ™”
57+
cur = tempNext;
58+
}
59+
60+
return prev;
61+
}
62+
}
63+

0 commit comments

Comments
ย (0)