From c7d9dbf811ffe79b9087b59860ec188f189f8f97 Mon Sep 17 00:00:00 2001 From: subbu4061 Date: Tue, 3 Mar 2026 12:38:27 -0800 Subject: [PATCH] Adding all the solutions --- DetectCycle-2.java | 44 +++++++++++++++ remove-nth-node-from-end-of-linked-list.java | 57 ++++++++++++++++++++ reverse-linked-list.java | 42 +++++++++++++++ 3 files changed, 143 insertions(+) create mode 100644 DetectCycle-2.java create mode 100644 remove-nth-node-from-end-of-linked-list.java create mode 100644 reverse-linked-list.java diff --git a/DetectCycle-2.java b/DetectCycle-2.java new file mode 100644 index 00000000..c912b072 --- /dev/null +++ b/DetectCycle-2.java @@ -0,0 +1,44 @@ +// TimeComplexity: O(n) +// SpaceComplexity: O(1) + +public class Solution { + public ListNode detectCycle(ListNode head) { + ListNode slow = head; + ListNode fast = head; + boolean flag = false; + while(fast != null && fast.next != null) { + slow = slow.next; + fast = fast.next.next; + if(slow == fast) { + flag = true; + break; + } + + } + if(flag == false) { + return null; + } + fast = head; + while(slow!=fast) { + slow = slow.next; + fast = fast.next; + } + return slow; + } +} + +// TimeComplexity: O(n) +// SpaceComplexity: O(n) +public class Solution { + public ListNode detectCycle(ListNode head) { + HashSet set = new HashSet<>(); + while(head!=null) { + if(set.contains(head)) { + return head; + } + set.add(head); + head = head.next; + } + return null; + } +} diff --git a/remove-nth-node-from-end-of-linked-list.java b/remove-nth-node-from-end-of-linked-list.java new file mode 100644 index 00000000..6c2a67f7 --- /dev/null +++ b/remove-nth-node-from-end-of-linked-list.java @@ -0,0 +1,57 @@ +// TimeComplexity: O(n) +// SpaceComplexity: O(1) +class Solution { + public ListNode removeNthFromEnd(ListNode head, int n) { + ListNode dummy = new ListNode(-1, head); + ListNode slow = dummy; + ListNode fast = dummy; + int i =0; + while(i<=n) { + fast = fast.next; + i++; + } + while(fast != null) { + slow = slow.next; + fast = fast.next; + } + ListNode temp = slow.next; + slow.next = slow.next.next; + temp.next = null; + return dummy.next; + } +} + + +// TimeComplexity: O(2n) +// SpaceComplexity: O(1) + +class Solution { + public ListNode removeNthFromEnd(ListNode head, int n) { + ListNode first = head; + int m=0; + while(first!=null) { + m++; + first = first.next; + } + System.out.println(m); + int k = m-n; + if(k==0) { + ListNode temp2 = head; + head= head.next; + temp2.next = null; + return head; + } + ListNode second = head; + for(int i=0; i