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;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.