t_list *ft_lstfrom_btree_suffix(t_btree *root) { t_list *lst; t_list *last; if (!root) return (NULL); lst = NULL; if (root->left) lst = ft_lstfrom_btree_suffix(root->left); if (root->right) { if ((last = ft_lstlast(lst))) last->next = ft_lstfrom_btree_suffix(root->right); else { last = ft_lstfrom_btree_suffix(root->right); lst = last; } } if ((last = ft_lstlast(lst))) last->next = ft_lstnew(&root, sizeof(root)); else lst = ft_lstnew(&root, sizeof(root)); return (lst); }
t_list *ft_lstmerge(t_list *l1, t_list *l2) { t_list *tmp; if ((tmp = ft_lstlast(l1))) tmp->next = l2; return (l1); }
t_list *ft_lstlast(t_list *lst) { if (lst->next) return (ft_lstlast(lst->next)); return (lst); }