Algorithm to Copy a Singly Linked List
Algorithm to Copy a Singly Linked List
Algorithm:
#include <stdio.h>
#include <stdlib.h>
// Node structure
struct Node {
int data;
};
newNode->data = data;
newNode->next = NULL;
return newNode;
if (*head == NULL) {
*head = newNode;
return;
temp = temp->next;
temp->next = newNode;
struct Node* copyTail = newHead; // Keep track of the last node in the copied list
copyTail = copyTail->next;
originalCurrent = originalCurrent->next;
temp = temp->next;
printf("NULL\n");
// Main function
int main() {
insertAtEnd(&originalList, 10);
insertAtEnd(&originalList, 20);
insertAtEnd(&originalList, 30);
insertAtEnd(&originalList, 40);
printList(copiedList);
return 0;
Explanation
1. createNode
2. insertAtEnd
3. copyLinkedList
4. printList
5. Main Function
Complexity Analysis
• Copying each node: O(n)