⭐Kth Node From Middle

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
 
int getLength(ListNode *ll) {
    int count = 0;
    while(ll) {
        count++;
        ll = ll->next;
    }
    
    return count;
}

int Solution::solve(ListNode* A, int B) {
    int length = getLength(A);
    
    int mid = length / 2 + 1;
    int k = mid - B;
    
    ListNode *ptr = A;
    
    if(k <= 0)
        return -1;
            
    for(int i = 1; i < k; i++) 
        ptr = ptr->next;
    
    return ptr -> val;    
}

Last updated