#include "practice.h" #include "../../utils/lists.h" #include "../basics/basics.h" int is_palindrome(struct dlist *l) { if (!l || l->next != NULL) return 1; struct dlist *tmp = l; int indexb = 0; while (tmp->next != NULL) { indexb ++; tmp = tmp->next; } struct dlist *back = tmp; tmp = l; int indexp = 0; while (indexp < indexb){ if (tmp->data != back->data) return 0; indexp ++; indexb --; tmp = tmp->next; back = back->prev; } return 1; } struct list *reverse(struct list *l) { struct list *tmp =l; struct list *rslt = NULL; while(l != NULL){ rslt = list_append(rslt, l->data); l = l->next; } return rslt; }