File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change
1
+ //두개의 정렬된 링크드 리스트 list1, list2의 Head를 받았다.(리스트가 아니라, 연결리스트의 헤드라는 것!)
2
+ /**
3
+ * Definition for singly-linked list.
4
+ * function ListNode(val, next) {
5
+ * this.val = (val===undefined ? 0 : val)
6
+ * this.next = (next===undefined ? null : next)
7
+ * }
8
+ */
9
+ /**
10
+ * @param {ListNode } list1
11
+ * @param {ListNode } list2
12
+ * @return {ListNode }
13
+ */
14
+ function mergeTwoLists (
15
+ list1 ,
16
+ list2 ,
17
+ ) {
18
+ if ( ! ( list1 && list2 ) ) return list1 || list2 ;
19
+ if ( list1 . val < list2 . val ) {
20
+ list1 . next = mergeTwoLists ( list1 . next , list2 ) ;
21
+ return list1 ;
22
+ } else {
23
+ list2 . next = mergeTwoLists ( list1 , list2 . next ) ;
24
+ return list2 ;
25
+ }
26
+ }
27
+
28
+ /*
29
+ list1.val이 list2.val보다 작으면
30
+ list1.next 다음에 list2.val이 온다.
31
+ 만약 아니라면, list2.next 다음에 list1의 Head를 붙여준다.
32
+ 이렇게 next만 바꿔주면서 연결지어주는 것이다.
33
+
34
+ 시간 복잡도: O(log n)
35
+ 공간 복잡도: O(h)
36
+ */
You can’t perform that action at this time.
0 commit comments