contributed by < chewei3
>
void add_entry(node_t **head, int new_value)
{
node_t **indirect = head;
node_t *new_node = malloc(sizeof(node_t));
new_node->value = new_value;
new_node->next = NULL;
AA1;
while (*indirect)
indirect = &(*indirect)->next;
AA2;
}
assert(new_node);
*indirect = new_node;
node_t *swap_pair(node_t *head)
{
for (node_t **node = &head; *node && (*node)->next; BB1) {
node_t *tmp = *node;
BB2;
tmp->next = (*node)->next;
(*node)->next = tmp;
}
return head;
}
node = &(*node)->next->next
*node = (*node)->next;
void swap_pair(node_t **head) {
for (; *head && (*head)->next; head = &(*head)->next->next) {
node_t *tmp = *head;
*head = (*head)->next;
tmp->next = (*head)->next;
(*head)->next = tmp;
}
}
node_t *reverse(node_t *head)
{
node_t *cursor = NULL;
while (head) {
node_t *next = head->next;
CCC;
head = next;
}
return cursor;
}
head->next = cursor;
cursor = head;
void reverse(node_t **head) {
node_t *cursor = NULL;
while (*head) {
node_t *next = (*head)->next;
(*head)->next = cursor;
cursor = *head;
*head = next;
}
*head = cursor;
}
void rev_recursive(node_t **head, node_t *cur) {
if (!cur)
return;
if (!cur->next) {
*head = cur;
return;
}
rev_recursive(head, cur->next);
cur->next->next = cur;
cur->next = NULL;
}
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up