2023每日刷题(十五)
Leetcode—2.两数相加
迭代法实现代码
/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {struct ListNode* lc = (struct ListNode*)malloc(sizeof(struct ListNode));struct ListNode* p = l1;struct ListNode* q = l2;lc->next = p;int c = 0;struct ListNode* p2 = p;struct ListNode* q2 = q;while(p&&q) {c = p->val + q->val + c;int tmp = c % 10;c /= 10;p->val = tmp;if(p->next == NULL) {p2 = p;}p = p->next; q = q->next;}if(p) {while(p) {c = c + p->val;int tmp = c % 10;c /= 10;p->val = tmp;if(p->next == NULL) {p2 = p;}p = p->next;}if(c != 0) {struct ListNode* s = (struct ListNode*)malloc(sizeof(struct ListNode));s->val = c;s->next = NULL;p2->next = s;c = 0;}}if(q) {p2->next = q;while(q) {c = c + q->val;int tmp = c % 10;c /= 10;q->val = tmp;if(q->next == NULL) {q2 = q;}q = q->next;}if(c != 0) {struct ListNode* s = (struct ListNode*)malloc(sizeof(struct ListNode));s->val = c;s->next = NULL;q2->next = s;c = 0;}}if(c != 0) {struct ListNode* s = (struct ListNode*)malloc(sizeof(struct ListNode));s->val = c;s->next = NULL;p2->next = s;c = 0;}return lc->next;
}
之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!