diff --git a/src/main/java/com/thealgorithms/misc/PalindromeSinglyLinkedList.java b/src/main/java/com/thealgorithms/misc/PalindromeSinglyLinkedList.java index b2fe18973..07286b39f 100644 --- a/src/main/java/com/thealgorithms/misc/PalindromeSinglyLinkedList.java +++ b/src/main/java/com/thealgorithms/misc/PalindromeSinglyLinkedList.java @@ -11,39 +11,23 @@ import java.util.Stack; * See more: * https://www.geeksforgeeks.org/function-to-check-if-a-singly-linked-list-is-palindrome/ */ -public class PalindromeSinglyLinkedList { - - public static void main(String[] args) { - SinglyLinkedList linkedList = new SinglyLinkedList(); - - linkedList.insertHead(3); - linkedList.insertNth(2, 1); - linkedList.insertNth(1, 2); - linkedList.insertNth(2, 3); - linkedList.insertNth(3, 4); - - if (isPalindrome(linkedList)) { - System.out.println("It's a palindrome list"); - } else { - System.out.println("It's NOT a palindrome list"); - } +public final class PalindromeSinglyLinkedList { + private PalindromeSinglyLinkedList() { } - public static boolean isPalindrome(SinglyLinkedList linkedList) { - boolean ret = true; + public static boolean isPalindrome(final SinglyLinkedList linkedList) { Stack linkedListValues = new Stack<>(); - for (int i = 0; i < linkedList.size(); i++) { - linkedListValues.push(linkedList.getNth(i)); + for (final var x : linkedList) { + linkedListValues.push(x); } - for (int i = 0; i < linkedList.size(); i++) { - if (linkedList.getNth(i) != linkedListValues.pop()) { - ret = false; - break; + for (final var x : linkedList) { + if (x != linkedListValues.pop()) { + return false; } } - return ret; + return true; } } diff --git a/src/test/java/com/thealgorithms/misc/PalindromeSinglyLinkedListTest.java b/src/test/java/com/thealgorithms/misc/PalindromeSinglyLinkedListTest.java index 13be9e11e..ae0d6ae06 100644 --- a/src/test/java/com/thealgorithms/misc/PalindromeSinglyLinkedListTest.java +++ b/src/test/java/com/thealgorithms/misc/PalindromeSinglyLinkedListTest.java @@ -28,6 +28,17 @@ public class PalindromeSinglyLinkedListTest { assertTrue(PalindromeSinglyLinkedList.isPalindrome(exampleList)); } + @Test + public void testWithListWithOddLengthPositive2() { + var exampleList = new SinglyLinkedList(); + exampleList.insert(3); + exampleList.insert(2); + exampleList.insert(1); + exampleList.insert(2); + exampleList.insert(3); + assertTrue(PalindromeSinglyLinkedList.isPalindrome(exampleList)); + } + @Test public void testWithListWithEvenLengthPositive() { var exampleList = new SinglyLinkedList();