aboutsummaryrefslogtreecommitdiff
path: root/c12/ex04/ft_list_push_back.c
diff options
context:
space:
mode:
Diffstat (limited to 'c12/ex04/ft_list_push_back.c')
-rw-r--r--c12/ex04/ft_list_push_back.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/c12/ex04/ft_list_push_back.c b/c12/ex04/ft_list_push_back.c
index cfde9a8..db4fdb0 100644
--- a/c12/ex04/ft_list_push_back.c
+++ b/c12/ex04/ft_list_push_back.c
@@ -6,7 +6,7 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/09 17:18:46 by cacharle #+# #+# */
-/* Updated: 2019/07/09 17:18:48 by cacharle ### ########.fr */
+/* Updated: 2019/07/17 18:04:28 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -14,12 +14,15 @@
void ft_list_push_back(t_list **begin_list, void *data)
{
- if (*begin_list)
- while (*begin_list->next)
- *begin_list = *begin_list->next;
- elem = ft_create_elem(data);
- if (*begin_list)
- *begin_list->next = elem;
- else
- *begin_list = elem;
+ t_list *new_rear;
+
+ new_rear = ft_create_elem(data);
+ if (!*begin_list)
+ {
+ (*begin_list) = new_rear;
+ return ;
+ }
+ while ((*begin_list)->next)
+ *begin_list = (*begin_list)->next;
+ (*begin_list)->next = new_rear;
}