
Description
두개의 정렬된 링크드리스트(Linked List)를 머지하여 반환하는 문제입니다.
Solution 1. Merge Two pointers
static SinglyLinkedListNode mergeLists(SinglyLinkedListNode head1, SinglyLinkedListNode head2) {
SinglyLinkedListNode dHead = new SinglyLinkedListNode(0);
SinglyLinkedListNode cur = dHead;
while(head1 != null && head2 !=null){
if(head1.data <= head2.data){
cur.next = head1;
head1 = head1.next;
}else{
cur.next = head2;
head2 = head2.next;
}
cur = cur.next;
}
if(head1 == null) cur.next = head2;
if(head2 == null) cur.next = head1;
return dHead.next;
}
2개의 포인터를 이용해서 리스트별로 진행하며 작은 값부터 더미헤드에 붙여 나갑니다. 한쪽노드의 값이 모두 추가되었을 경우 다른 한쪽의 남은 노드는 그대로 마지막 노드에 연결해 주시면 됩니다.
Reference
Merge two sorted linked lists | HackerRank
Given the heads of two sorted linked lists, change their links to get a single, sorted linked list.
www.hackerrank.com
'알고리즘 > HackerRank' 카테고리의 다른 글
[HackerLank] Balanced Brackets - 문제풀이 (0) | 2022.03.25 |
---|---|
[HackerLank] Queue using Two Stacks - 문제풀이 (0) | 2022.03.25 |
[HackerLank] Truck Tour - 문제풀이 (0) | 2022.03.25 |
[HackerLank] New Year Chaos - 문제풀이 (0) | 2022.03.25 |
[HackerLank] Recursive Digit Sum - 문제풀이 (0) | 2022.03.25 |