728x90
반응형
주어진 두 개의 연결 리스트(Linked List)가 동일한 데이터 요소(Node)들로 구성되어 있는지를 비교하는 알고리즘 문제입니다. 이 문제의 목표는 두 연결 리스트가 동일한 데이터 요소를 같은 순서로 포함하는지 확인하는 것입니다.
연결 리스트는 데이터 요소(Node)로 이루어진 데이터 구조로, 각 노드는 데이터와 다음 노드를 가리키는 링크(또는 포인터)로 구성됩니다. 연결 리스트의 끝을 나타내는 노드는 다음 노드를 가리키는 링크가 없는 특별한 노드일 수 있습니다.
문제 설명:
문제의 입력으로는 두 개의 연결 리스트 head1과 head2가 주어집니다. 이 두 연결 리스트를 비교하여 같은 데이터 요소로 구성되어 있는지 확인해야 합니다.
알고리즘 절차:
두 연결 리스트를 동시에 순회하면서 각 노드의 데이터를 비교합니다.
만약 두 노드의 데이터가 다르면, 연결 리스트가 다르다고 판단하고 false를 반환합니다.
두 연결 리스트의 모든 노드를 비교한 후에도 다른 데이터가 없다면, 연결 리스트가 동일하다고 판단하고 true를 반환합니다.
bool compare_lists(SinglyLinkedListNode* head1, SinglyLinkedListNode* head2) {
SinglyLinkedListNode* current1 = head1;
SinglyLinkedListNode* current2 = head2;
// 두 연결 리스트를 동시에 순회하면서 데이터 비교
while (current1 && current2) {
if (current1->data != current2->data) {
return false; // 데이터가 다르면 false 반환
}
current1 = current1->next;
current2 = current2->next;
}
// 두 연결 리스트 중 하나라도 끝에 도달하지 않았으면 false 반환
if (current1 || current2) {
return false;
}
// 모든 노드의 데이터가 같으면 true 반환
return true;
}
728x90
반응형
'HackerRank' 카테고리의 다른 글
Linked Lists:Get Node Value (0) | 2023.10.10 |
---|---|
Merge two sorted linked lists (1) | 2023.10.09 |
Reverse a linked list (0) | 2023.10.08 |
Print in Reverse(Linked List) (0) | 2023.10.08 |
Delete a Node (0) | 2023.10.07 |