-{"c":"/**\n * Definition for singly-linked list.\n * struct ListNode {\n * int val;\n * struct ListNode *next;\n * };\n */\nstruct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {\n\tstruct ListNode *result, *currentNode, *headNode;\n\theadNode = NULL;\n\tint flag = 0;\n while(l1 != NULL && l2 !=NULL) {\n \tcurrentNode = (struct ListNode *)malloc(sizeof(struct ListNode));\n \tcurrentNode->next = NULL;\n \tif(l1->val + l2->val + flag > 9) {\n \t\tcurrentNode->val = l1->val + l2->val + flag - 10;\n \t\tflag = 1;\n\t\t} else {\n\t\t\tcurrentNode->val = l1->val + l2->val + flag;\n\t\t\tflag = 0;\n\t\t}\n\t\tif (headNode == NULL) {\n\t\t\theadNode = currentNode;\n\t\t} else {\n\t\t\tresult->next = currentNode;\n\t\t}\n\t\tresult = currentNode;\n\t\tl1 = l1->next;\n\t\tl2 = l2->next;\n\t}\n\twhile(l1 != NULL) {\n\t\tcurrentNode = (struct ListNode *)malloc(sizeof(struct ListNode));\n\t\tcurrentNode->next = NULL;\n\t\tif(l1->val + flag > 9){\n\t\t\tcurrentNode->val = l1->val + flag - 10;\n\t\t\tflag = 1;\n\t\t} else {\n\t\t\tcurrentNode->val = l1->val + flag;\n\t\t\tflag = 0;\n\t\t}\n\t\tresult->next = currentNode;\n\t\tresult = currentNode;\n\t\tl1 = l1->next;\n\t}\n\twhile(l2 != NULL) {\n\t\tcurrentNode = (struct ListNode *)malloc(sizeof(struct ListNode));\n\t\tcurrentNode->next = NULL;\n\t\tif(l2->val + flag > 9){\n\t\t\tcurrentNode->val = l2->val + flag - 10;\n\t\t\tflag = 1;\n\t\t} else {\n\t\t\tcurrentNode->val = l2->val + flag;\n\t\t\tflag = 0;\n\t\t}\n\t\tresult->next = currentNode;\n\t\tresult = currentNode;\n\t\tl2 = l2->next;\n\t}\n\tif(flag != 0) {\n\t\tcurrentNode = (struct ListNode *)malloc(sizeof(struct ListNode));\n\t\tcurrentNode->next = NULL;\n\t\tcurrentNode->val = flag;\n\t\tresult->next = currentNode;\n\t}\n\treturn headNode;\n}"}
0 commit comments