3. Given the following adjacency list representation code snippet for a graph with 3 vertices (0,1,2):
struct Node {
int vertex;
struct Node* next;
};
struct Node* adjList[3] = {NULL, NULL, NULL};
// Adding edge 0->1
struct Node* newNode = malloc(sizeof(struct Node));
newNode->vertex = 1;
newNode->next = adjList[0];
adjList[0] = newNode;
// Adding edge 0->2
newNode = malloc(sizeof(struct Node));
newNode->vertex = 2;
newNode->next = adjList[0];
adjList[0] = newNode;
// Adding edge 1->2
newNode = malloc(sizeof(struct Node));
newNode->vertex = 2;
newNode->next = adjList[1];
adjList[1] = newNode;
// Print adjacency list for vertex 0
struct Node* temp = adjList[0];
while(temp != NULL) {
printf("%d -> ", temp->vertex);
temp = temp->next;
}
printf("NULL\n");What is the printed output?