File tree Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Original file line number Diff line number Diff line change 1+ function ListNode ( val , next ) {
2+ this . val = ( val === undefined ? 0 : val )
3+ this . next = ( next === undefined ? null : next )
4+ }
5+
6+ // 첫 번째 시도
7+ // 시간복잡도: O(n)
8+ // 공간복잡도: O(n)
9+ /**
10+ * 단방향 연결 리스트를 reverse하여 반환하는 함수
11+ * @param {ListNode } head
12+ * @return {ListNode }
13+ */
14+ const reverseList = function ( head ) {
15+ const newHead = new ListNode ( ) ;
16+
17+ function _reverseList ( head ) {
18+ if ( ! head ) {
19+ return newHead ;
20+ }
21+
22+ const reversedHead = _reverseList ( head . next ) ;
23+ reversedHead . next = new ListNode ( head . val , null ) ;
24+
25+ return reversedHead . next ;
26+ }
27+
28+ _reverseList ( head ) ;
29+ return newHead . next ;
30+ } ;
31+
32+
33+ // 두 번째 시도
34+ // 시간복잡도: O(n)
35+ // 공간복잡도: O(1)
36+ const reverseList = function ( head ) {
37+ let current = head ;
38+ let prev = null ;
39+
40+ while ( current ) {
41+ const next = current . next ;
42+ current . next = prev ;
43+ prev = current ;
44+ current = next ;
45+ }
46+
47+ return prev ;
48+ } ;
You can’t perform that action at this time.
0 commit comments