Problem 2 on Leetcode:
Add Two Numbers.
My code here:
#include <stdbool.h> #include <stdio.h> #include <stdlib.h> struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2){ struct ListNode* result; volatile bool carry = false; while ((l1 != NULL) || (l2 != NULL) ) { result = (struct ListNode*)malloc(sizeof(struct ListNode) ); result->next = NULL; int v1 = 0; if (l1 != NULL) { v1 = l1->val; l1 = l1->next; } int v2 = 0; if (l2 != NULL) { v2 = l2->val; l2 = l2->next; } int sum = v1 + v2; if (carry == true) sum += 1; carry = (sum > 9); result->val = sum%10; printf("result->val: %d, sum: %d, carry: %d\n",result->val,sum,carry); //result = result->next; } return result; } Input
[2,4,3] [5,6,4] Expect
[7,0,8] Stdout
result->val: 7, sum: 7, carry: 0 result->val: 0, sum: 10, carry: 1 result->val: 8, sum: 8, carry: 0 Actully out:
[8] I think maybe loss
result = result->next; in while loop,
so I add it after printf().
But Output seems null
[] What's wrong in my code?
https://stackoverflow.com/questions/66898202/whats-wrong-in-my-link-list-code-for-c-add-two-numbers April 01, 2021 at 11:53AM
没有评论:
发表评论