You are on page 1of 2

7/24/23, 4:55 PM checque.

checque.c

1 // Online C compiler to run C program online


2 #include <stdio.h>
3 #include <stdlib.h>
4 struct ListNode
5 {
6 int val;
7 struct ListNode *next;
8 };
9 void reverse(struct ListNode **list)
10 {
11 struct ListNode *traveller = (*list), *prev = NULL, *Nextptr = NULL;
12 while (traveller)
13 {
14 Nextptr = traveller->next;
15 traveller->next = prev;
16 prev = traveller;
17 traveller = Nextptr;
18 }
19 *list = prev;
20 }
21
22 void transverseq(struct ListNode *list)
23 {
24 struct ListNode *traveller = list;
25 while (list)
26 {
27 printf("%d\t", list->val);
28 list = list->next;
29 }
30 }
31 struct ListNode *createNode(int data)
32 {
33 struct ListNode *tempNode = malloc(sizeof(struct ListNode));
34 tempNode->next = 0, tempNode->val = data;
35 }
36 int carrayGiver(struct ListNode *list1, struct ListNode *list2)
37 {
38 int sum = list1->val + list2->val;
39
40 return sum / 10;
41 }
42 int digitGiver(struct ListNode *list1, struct ListNode *list2)
43 {
44 int sum = list1->val + list2->val;
45 return sum % 10;
46 }
47 void push(struct ListNode **list, int data)
48 {
49 struct ListNode *traveller = *list, *node = createNode(data);
50 if (*list == NULL)
51 {
52 *list = node;

localhost:50046/6f2412ee-2ac2-4181-8a71-a0edcfc54fb3/ 1/2
7/24/23, 4:55 PM checque.c
53 }
54 else
55 {
56 while (traveller->next)
57 {
58 traveller = traveller->next;
59 }
60 traveller->next = node;
61 }
62 }
63 void add(struct ListNode **list1, struct ListNode **list2, struct ListNode **list3)
64 {
65 struct ListNode *traveller1 = *list1, *traveller2 = *list2, **traveller3 = list3;
66 while (traveller1)
67 {
68 push(traveller3, digitGiver(traveller1, traveller2));
69 traveller1 = traveller1->next;
70 traveller2 = traveller2->next;
71 *traveller3 = (*traveller3)->next;
72 }
73 }
74 int main()
75 {
76 struct ListNode *head1 = 0, *head2 = 0, *head3 = 0;
77 // list1
78 push(&head1, 1), push(&head1, 1);
79 // list2
80 push(&head2, 1), push(&head2, 1);
81 // list3
82 add(&head3, &head2, &head1);
83
84 transverseq(head3);
85
86 // reverse(&head1);
87 // transverseq(head1);
88
89 return 0;
90 }
91  

localhost:50046/6f2412ee-2ac2-4181-8a71-a0edcfc54fb3/ 2/2

You might also like