Searching in a Node

Iterative and recursive implementation of linearly searching for an element in a linked list.

Iterative Method :

struct node * search(struct node *ptr, int key) {

    while (ptr != NULL) {
        if (ptr -> data == key) {
            // Return address of node if found
            return ptr;
        }
        ptr = ptr -> next;
    }
    return NULL;

}

Recursive Method :

struct node * search(struct node *ptr, int key) {

    // Base condition
    if (ptr == NULL) {
        return NULL;
    } 
    
    // Recursive call
    if (ptr -> data == key) {
        return ptr;
    else {
        return search(ptr -> next, key);
    }
    
}

Improving Using Move to Head Technique :

Contributed by Nitin Ranganath

Last updated

Was this helpful?