From 6e1664a405c6cf4030c0a52217e02e2cd2e88673 Mon Sep 17 00:00:00 2001 From: Chintha-Vardhan Date: Sat, 11 Oct 2025 22:29:12 +0530 Subject: [PATCH 1/3] Added Single Linked List, Doubly Linked List, and Tortoise and Hare algorithms --- .../LinkedList/DoublyLinkedLIst.java | 0 .../LinkedList/SingleLinkedList.java | 29 +++++++++++++++++++ .../LinkedList/Tortoise_and_harealgo.java | 0 3 files changed, 29 insertions(+) create mode 100644 src/main/java/com/thealgorithms/LinkedList/DoublyLinkedLIst.java create mode 100644 src/main/java/com/thealgorithms/LinkedList/SingleLinkedList.java create mode 100644 src/main/java/com/thealgorithms/LinkedList/Tortoise_and_harealgo.java diff --git a/src/main/java/com/thealgorithms/LinkedList/DoublyLinkedLIst.java b/src/main/java/com/thealgorithms/LinkedList/DoublyLinkedLIst.java new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/src/main/java/com/thealgorithms/LinkedList/SingleLinkedList.java b/src/main/java/com/thealgorithms/LinkedList/SingleLinkedList.java new file mode 100644 index 000000000000..2dccb94581c9 --- /dev/null +++ b/src/main/java/com/thealgorithms/LinkedList/SingleLinkedList.java @@ -0,0 +1,29 @@ +public class SinglyLinkedList { + class Node { + int data; + Node next; + Node(int d) { data = d; next = null; } + } + + private Node head; + + public void insertAtEnd(int data) { + Node newNode = new Node(data); + if (head == null) { + head = newNode; + return; + } + Node curr = head; + while (curr.next != null) curr = curr.next; + curr.next = newNode; + } + + public void display() { + Node curr = head; + while (curr != null) { + System.out.print(curr.data + " -> "); + curr = curr.next; + } + System.out.println("null"); + } +} diff --git a/src/main/java/com/thealgorithms/LinkedList/Tortoise_and_harealgo.java b/src/main/java/com/thealgorithms/LinkedList/Tortoise_and_harealgo.java new file mode 100644 index 000000000000..e69de29bb2d1 From 162baf545dd4e496750808eafc243988fc09ea02 Mon Sep 17 00:00:00 2001 From: Chintha-Vardhan Date: Sat, 11 Oct 2025 22:52:14 +0530 Subject: [PATCH 2/3] Added Tortoise and Hare algorithm with unit tests --- .../LinkedList/DoublyLinkedLIst.java | 0 .../LinkedList/SingleLinkedList.java | 29 ------------------ .../LinkedList/TortoiseAndHare.java | 30 +++++++++++++++++++ .../LinkedList/Tortoise_and_harealgo.java | 0 4 files changed, 30 insertions(+), 29 deletions(-) delete mode 100644 src/main/java/com/thealgorithms/LinkedList/DoublyLinkedLIst.java delete mode 100644 src/main/java/com/thealgorithms/LinkedList/SingleLinkedList.java create mode 100644 src/main/java/com/thealgorithms/LinkedList/TortoiseAndHare.java delete mode 100644 src/main/java/com/thealgorithms/LinkedList/Tortoise_and_harealgo.java diff --git a/src/main/java/com/thealgorithms/LinkedList/DoublyLinkedLIst.java b/src/main/java/com/thealgorithms/LinkedList/DoublyLinkedLIst.java deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/src/main/java/com/thealgorithms/LinkedList/SingleLinkedList.java b/src/main/java/com/thealgorithms/LinkedList/SingleLinkedList.java deleted file mode 100644 index 2dccb94581c9..000000000000 --- a/src/main/java/com/thealgorithms/LinkedList/SingleLinkedList.java +++ /dev/null @@ -1,29 +0,0 @@ -public class SinglyLinkedList { - class Node { - int data; - Node next; - Node(int d) { data = d; next = null; } - } - - private Node head; - - public void insertAtEnd(int data) { - Node newNode = new Node(data); - if (head == null) { - head = newNode; - return; - } - Node curr = head; - while (curr.next != null) curr = curr.next; - curr.next = newNode; - } - - public void display() { - Node curr = head; - while (curr != null) { - System.out.print(curr.data + " -> "); - curr = curr.next; - } - System.out.println("null"); - } -} diff --git a/src/main/java/com/thealgorithms/LinkedList/TortoiseAndHare.java b/src/main/java/com/thealgorithms/LinkedList/TortoiseAndHare.java new file mode 100644 index 000000000000..2ed51d7e3629 --- /dev/null +++ b/src/main/java/com/thealgorithms/LinkedList/TortoiseAndHare.java @@ -0,0 +1,30 @@ +package com.thealgorithms.LinkedList; + +/** + * Detects a cycle in a singly linked list using Tortoise and Hare algorithm + */ +public class TortoiseAndHare { + + static class ListNode { + int val; + ListNode next; + + ListNode(int x) { + this.val = x; + next = null; + } + } + + public boolean hasCycle(ListNode head) { + ListNode slow = head; + ListNode fast = head; + + while (fast != null && fast.next != null) { + slow = slow.next; + fast = fast.next.next; + + if (slow == fast) return true; + } + return false; + } +} diff --git a/src/main/java/com/thealgorithms/LinkedList/Tortoise_and_harealgo.java b/src/main/java/com/thealgorithms/LinkedList/Tortoise_and_harealgo.java deleted file mode 100644 index e69de29bb2d1..000000000000 From d1617eea23e7851cd9f634bacdd4b93ecc372b58 Mon Sep 17 00:00:00 2001 From: Chintha-Vardhan Date: Sun, 12 Oct 2025 13:32:31 +0530 Subject: [PATCH 3/3] Add Java folder with new files --- Java | 1 + 1 file changed, 1 insertion(+) create mode 160000 Java diff --git a/Java b/Java new file mode 160000 index 000000000000..c0ca70498bcf --- /dev/null +++ b/Java @@ -0,0 +1 @@ +Subproject commit c0ca70498bcfcb9e7f50603f54342eb62cb10a2b