linked-list-pack
v1.0.2
Published
LinkedList All Operations
Readme
Linked List Utilities
A comprehensive package for managing and manipulating linked lists in JavaScript. This package provides various functions to perform common operations on linked lists, such as reversing, merging, detecting cycles, and more.
Installation
Install the package via npm:
npm i linked-list-packUsage
Import the package in your project:
const {
LinkedList,
ListNode,
reverseList,
mergeTwoLists,
removeNthFromEnd,
hasCycle,
getIntersectionNode,
addTwoNumbers,
isPalindrome,
deleteDuplicates
} = require('linked-list-utilities');LinkedList Class
Create and manage linked lists easily using the LinkedList class.
const list = new LinkedList();
list.addNode(1);
list.addNode(2);
list.addNode(3);
list.printList(); // Output: 1 -> 2 -> 3
list.updateNode(2, 5);
list.printList(); // Output: 1 -> 5 -> 3
list.deleteNode(5);
list.printList(); // Output: 1 -> 3Available Functions
reverseList(head): Reverses a linked list.
- Input:
head(ListNode) - Head of the linked list. - Output: (ListNode) - New head of the reversed list.
const reversedHead = reverseList(list.head);- Input:
mergeTwoLists(list1, list2): Merges two sorted linked lists into one sorted list.
- Input:
list1,list2(ListNode) - Heads of the two sorted linked lists. - Output: (ListNode) - Head of the merged list.
const mergedHead = mergeTwoLists(list1, list2);- Input:
removeNthFromEnd(head, n): Removes the Nth node from the end of the list.
- Input:
head(ListNode) - Head of the linked list,n(number) - Position from the end. - Output: (ListNode) - Head of the modified list.
const newHead = removeNthFromEnd(list.head, 2);- Input:
hasCycle(head): Detects if a linked list has a cycle.
- Input:
head(ListNode) - Head of the linked list. - Output: (boolean) -
trueif the list has a cycle,falseotherwise.
const cycleExists = hasCycle(list.head);- Input:
getIntersectionNode(headA, headB): Finds the intersection node of two linked lists.
- Input:
headA,headB(ListNode) - Heads of the two linked lists. - Output: (ListNode) - Intersection node or
null.
const intersectionNode = getIntersectionNode(headA, headB);- Input:
addTwoNumbers(l1, l2): Adds two numbers represented by linked lists.
- Input:
l1,l2(ListNode) - Heads of the two linked lists. - Output: (ListNode) - Head of the linked list representing the sum.
const sumList = addTwoNumbers(list1, list2);- Input:
isPalindrome(head): Checks if a linked list is a palindrome.
- Input:
head(ListNode) - Head of the linked list. - Output: (boolean) -
trueif the list is a palindrome,falseotherwise.
const isListPalindrome = isPalindrome(list.head);- Input:
deleteDuplicates(head): Removes duplicates from a sorted linked list.
- Input:
head(ListNode) - Head of the sorted linked list. - Output: (ListNode) - Head of the modified list.
const uniqueList = deleteDuplicates(list.head);- Input:
