Untitled
unknown
plain_text
a year ago
3.4 kB
9
Indexable
class ListNode {
int val;
ListNode next;
ListNode(int val) {
this.val = val;
this.next = null;
}
}
public class LinkedListOperations {
// Insert at kth position in Linked List
public ListNode insertAtKthPosition(ListNode head, int k, int value) {
ListNode newNode = new ListNode(value);
// Insert at the beginning
if (k == 1) {
newNode.next = head;
return newNode;
}
ListNode current = head;
int position = 1;
// Traverse to (k-1)th position
while (current != null && position < k - 1) {
current = current.next;
position++;
}
// Invalid position check
if (current == null) {
System.out.println("Position out of bounds");
return head;
}
// Insert new node
newNode.next = current.next;
current.next = newNode;
return head;
}
// Delete at kth position in Linked List
public ListNode deleteAtKthPosition(ListNode head, int k) {
// Delete at the beginning
if (k == 1) {
if (head == null) return null; // If list is empty
return head.next;
}
ListNode current = head;
int position = 1;
// Traverse to (k-1)th position
while (current != null && position < k - 1) {
current = current.next;
position++;
}
// Invalid position check
if (current == null || current.next == null) {
System.out.println("Position out of bounds");
return head;
}
// Delete the kth node
current.next = current.next.next;
return head;
}
// Helper Method: Print Linked List
public void printLinkedList(ListNode head) {
ListNode current = head;
while (current != null) {
System.out.print(current.val + " -> ");
current = current.next;
}
System.out.println("null");
}
// Main Method: Test All Operations
public static void main(String[] args) {
LinkedListOperations operations = new LinkedListOperations();
// Create a Linked List
int[] arr = {10, 20, 30, 40, 50};
ListNode head = operations.arrayToLinkedList(arr);
System.out.print("Original Linked List: ");
operations.printLinkedList(head);
// Insert at kth position
head = operations.insertAtKthPosition(head, 3, 25); // Insert 25 at position 3
System.out.print("After Insertion at Position 3: ");
operations.printLinkedList(head);
// Delete at kth position
head = operations.deleteAtKthPosition(head, 4); // Delete node at position 4
System.out.print("After Deletion at Position 4: ");
operations.printLinkedList(head);
}
// Convert Array to Linked List
public ListNode arrayToLinkedList(int[] arr) {
if (arr == null || arr.length == 0) return null;
ListNode head = new ListNode(arr[0]);
ListNode current = head;
for (int i = 1; i < arr.length; i++) {
current.next = new ListNode(arr[i]);
current = current.next;
}
return head;
}
}
Editor is loading...
Leave a Comment