LeetCode 002. 两数相加 模拟
地址 https://leetcode-cn.com/problems/add-two-numbers/
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807
算法1
类似一个大数加法
注意链表的边界和进位


C++ 代码
class Solution { public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode* head = NULL; ListNode* p = NULL; int a = 0; while (l1 != NULL && l2 != NULL) { int sum = l1->val + l2->val+a; if(p == NULL) p = new ListNode(sum%10); else { p->next = new ListNode(sum % 10); p = p->next; } if (head == NULL) { head = p; } a = sum / 10; l1 = l1->next; l2 = l2->next; } while (l1 != NULL) { p->next = new ListNode(); p->next->val = (l1->val + a)%10; a = (l1->val + a) / 10; p = p->next; l1 = l1->next; } while (l2 != NULL) { p->next = new ListNode(); p->next->val = (l2->val + a) % 10; a = (l2->val + a) / 10; p = p->next; l2 = l2->next; } if (a != 0) { p->next = new ListNode(a); } return head; } };
作 者: itdef
欢迎转帖 请保持文本完整并注明出处
技术博客 http://www.cnblogs.com/itdef/
B站算法视频题解
https://space.bilibili.com/18508846
qq 151435887
gitee https://gitee.com/def/
欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
如果觉得不错,欢迎点赞,你的鼓励就是我的动力
欢迎转帖 请保持文本完整并注明出处
技术博客 http://www.cnblogs.com/itdef/
B站算法视频题解
https://space.bilibili.com/18508846
qq 151435887
gitee https://gitee.com/def/
欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
如果觉得不错,欢迎点赞,你的鼓励就是我的动力
浙公网安备 33010602011771号