2개의 singly linked list를 merge하는 문제이다. 처음에는 while문으로 두개의 리스트에서 값을 비교해서 정답에 추가해준후에, 나중에 남아있는 list를 붙여준다.
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode cur = null;
ListNode answer = null;
while (l1 != null && l2 != null) {
ListNode node;
if (l1.val < l2.val) {
node = new ListNode(l1.val);
l1 = l1.next;
} else {
node = new ListNode(l2.val);
l2 = l2.next;
}
if (cur == null) {
cur = node;
answer = node;
} else {
cur.next = node;
cur = cur.next;
}
}
if (l1 != null) {
if (cur == null) {
answer = l1;
} else {
cur.next = l1;
}
} else if (l2 != null) {
if (cur == null) {
answer = l2;
} else {
cur.next = l2;
}
}
return answer;
}
}
반응형
'Algorithm > LeetCode' 카테고리의 다른 글
[Java] LeetCode 23번 Merge k Sorted Lists (0) | 2021.09.29 |
---|---|
[Java] LeetCode 22번 Generate Parentheses (0) | 2021.09.28 |
[Java] LeetCode 20번 Valid Parentheses (0) | 2021.09.27 |
[Java] LeetCode 19번 Remove Nth Node From End of List (0) | 2021.09.26 |
[Java] LeetCode 17번 Letter Combinations of a Phone Number (0) | 2021.09.26 |