@LeetCode I solved q2 in O(n) but got a TLE. And went on to solve q3. After that I came back and submitted the same code and it was accepted. That's quite unfair. I wasted a lot of time on it and even got penalized for it. Will my first submission be re-evaluated?
My same code is fetching me around 900ms runtime i.e faster than 78%.
This is what i got on my TLE submission "132 / 132 test cases passed, but took too long."
ListNode* swapNodes(ListNode* head, int k) {
ListNode* ptr = head;
int len = 0;
while(ptr)
{
ptr = ptr->next;
len++;
}
cout<<len<<" ";
if(len%2!=0 && k == (len/2)+1) return head;
if(len%2!=0 && k > (len/2)+1) k = len-k+1;
if(len%2==0 && k>(len/2)) k = len-k+1;
ptr = head;
int a = k-1;
int b = len-k;
while(a-->0)
ptr = ptr->next;
ListNode* ptr2 = head;
while(b-->0)
ptr2 = ptr2->next;
swap(ptr->val,ptr2->val);
return head;
}