Chodzi o to zadanie: https://leetcode.com/problems/palindrome-linked-list/
Oto moje rozwiązanie:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public boolean isPalindrome(ListNode head) {
int size = 0;
ListNode tmp = head;
boolean isP = true;
while (tmp != null)
{
size++;
tmp = tmp.next;
}
int start = 0;
int end = size - 1;
while (start < end)
{
ListNode first = head;
ListNode last = head;
for (int i = 0 ; i < start ; i++)
{
first = first.next;
}
for (int i = 0 ; i < end ; i++)
{
last = last.next;
}
if (first.val != last.val)
{
isP = false;
break;
}
else
{
start++;
end--;
}
}
return isP;
}
}
Czy jestem w stanie jakoś zmodyfikować ten kod bez zmieniania logiki aby uniknąć time limitu?