Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

1 . Implement an algorithm to delete the k th element from the tail of a singly

ID: 3725636 • Letter: 1

Question

1

. Implement an algorithm to delete the

k

th element

from the tail

of a singly linked list. Your

algorithm should not use more than a few temporary storages and assume that it is not possible

to store or calculate the length of the linked list.

2.

Reverse

a given link list.

3. Given a singly linked list, find if there is a cycle in the linked list. (harder one: find the starting

point of the cycle if one exists)

4. Let s be a non

-

tail node in a singly linked list L, write a function that deletes s in O(1)

time.

struct node {

int data;

struct node* next;

};

int deleteNode (struct node* s) {

Explanation / Answer

Please find my code for Q2.

Please repost others in separate post.

/* Link list node */
struct Node
{
int data;
struct Node* next;
};

/* Function to reverse the linked list */
static void reverse(struct Node** head_ref)
{
struct Node* prev = NULL;
struct Node* current = *head_ref;
struct Node* next;
while (current != NULL)
{
next = current->next;  
current->next = prev;
prev = current;
current = next;
}
*head_ref = prev;
}