여기에서 링크드 리스트와 인덱스가 주어진다. 연결 리스트에서 N번째 노드를 가져오는 함수를 작성해야 합니다.
문제를 이해하기 위해 예를 들어 보겠습니다.
입력
linked list = 34 -> 4 -> 9 -> 1 , n = 2
출력
9
n으로 지정된 노드로 이동합니다. 연결 목록에서 노드별로 이동하여 필요한 n번째 위치에 도달할 때까지 인덱스 수를 늘립니다.
프로그램을 설명하는 프로그램,
예시
#include <iostream> using namespace std; class Node{ public: int data; Node* next; }; void insertNode(Node** head_ref, int new_data) { Node* new_node = new Node(); new_node->data = new_data; new_node->next = (*head_ref); (*head_ref) = new_node; } int findNodeAt(Node* head, int index) { Node* current = head; int count = 0; while (current != NULL){ if (count == index) return(current->data); count++; current = current->next; } } int main(){ Node* head = NULL; insertNode(&head, 8); insertNode(&head, 2); insertNode(&head, 9); insertNode(&head, 1); insertNode(&head, 4); int n = 2; cout<<"Element at index "<<n<<" is "<<findNodeAt(head, 2); return 0; }
출력
Element at index 2 is 9