From bd240991d38522a821bf12ce03476a4dcde2e7fb Mon Sep 17 00:00:00 2001 From: sudheer kethireddy Date: Tue, 7 Jul 2026 09:44:55 -0500 Subject: [PATCH 1/2] Linked-List-1 problems --- LinkedListCycle2.java | 31 +++++++++++++++++++++++++++++++ RemoveNthNodeFromEnd.java | 22 ++++++++++++++++++++++ ReverseLinkedList.java | 24 ++++++++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 LinkedListCycle2.java create mode 100644 RemoveNthNodeFromEnd.java create mode 100644 ReverseLinkedList.java diff --git a/LinkedListCycle2.java b/LinkedListCycle2.java new file mode 100644 index 00000000..0f2743b4 --- /dev/null +++ b/LinkedListCycle2.java @@ -0,0 +1,31 @@ +// Time complexity: O(n) +// Space complexity: O(1) + +public class Solution { + public ListNode detectCycle(ListNode head) { + boolean flag = false; + ListNode slow = head; + ListNode fast = head; + + while(fast != null && fast.next != null) { + slow = slow.next; + fast = fast.next.next; + + if(slow == fast) { + flag = true; + break; + } + } + + if(!flag) { + return null; + } + + slow = head; + while (fast != slow) { + slow = slow.next; + fast = fast.next; + } + return slow; + } +} \ No newline at end of file diff --git a/RemoveNthNodeFromEnd.java b/RemoveNthNodeFromEnd.java new file mode 100644 index 00000000..58100685 --- /dev/null +++ b/RemoveNthNodeFromEnd.java @@ -0,0 +1,22 @@ +// Time complexity: O(n) +// Space complexity: O(1) +class Solution { + public ListNode removeNthFromEnd(ListNode head, int n) { + + ListNode dummy = new ListNode(-1, head); + ListNode slow = dummy; + ListNode fast = dummy; + + for(int i = 0; i <=n; i++) { + fast = fast.next; + } + + while(fast != null) { + slow = slow.next; + fast = fast.next; + } + + slow.next = slow.next.next; + return dummy.next; + } +} \ No newline at end of file diff --git a/ReverseLinkedList.java b/ReverseLinkedList.java new file mode 100644 index 00000000..04e5f130 --- /dev/null +++ b/ReverseLinkedList.java @@ -0,0 +1,24 @@ +/** + * + * Time complexity: O(n) + * Space complexity: O(1) + */ +class Solution { + public ListNode reverseList(ListNode head) { + + if (head == null || head.next == null) { + return null; + } + + ListNode prev = null; + ListNode curr = head; + + while(curr != null) { + ListNode temp = curr.next; + curr.next = prev; + prev = curr; + curr = temp; + } + return prev; + } +} \ No newline at end of file From aeeaa8842d6ec05d05a70b90a216528d4c9aaf93 Mon Sep 17 00:00:00 2001 From: sudheerkreddy <78230612+sudheerkreddy@users.noreply.github.com> Date: Tue, 7 Jul 2026 12:12:37 -0400 Subject: [PATCH 2/2] Update ReverseLinkedList.java --- ReverseLinkedList.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/ReverseLinkedList.java b/ReverseLinkedList.java index 04e5f130..2e508b90 100644 --- a/ReverseLinkedList.java +++ b/ReverseLinkedList.java @@ -5,11 +5,6 @@ */ class Solution { public ListNode reverseList(ListNode head) { - - if (head == null || head.next == null) { - return null; - } - ListNode prev = null; ListNode curr = head; @@ -21,4 +16,4 @@ public ListNode reverseList(ListNode head) { } return prev; } -} \ No newline at end of file +}