Cleanup PalindromeSinglyLinkedList (#4336)

This commit is contained in:
Piotr Idzik
2023-09-02 19:05:10 +02:00
committed by GitHub
parent 657e85634f
commit cfdbc413f1
2 changed files with 20 additions and 25 deletions

View File

@ -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<Integer> 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;
}
}

View File

@ -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();