企业网站个人可以备案吗,制作视频的软件哪个最好免费的,wordpress 4.9.6 主题,jsp体育用品网站建设1. 题目
给定两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。
你可以假设除了数字 0 之外#xff0c;这两个数字都不会以零开头。
进阶:
如果输入链表不能修改该如何处理#xff1f;换句话…1. 题目
给定两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。
你可以假设除了数字 0 之外这两个数字都不会以零开头。
进阶:
如果输入链表不能修改该如何处理换句话说你不能对列表中的节点进行翻转。
示例:输入: (7 - 2 - 4 - 3) (5 - 6 - 4)
输出: 7 - 8 - 0 - 7来源力扣LeetCode 链接https://leetcode-cn.com/problems/add-two-numbers-ii 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
2. 解题
先将链表转成字符串对齐两个字符串短的前面加 ‘0’ 用字符串加法得到新的字符串把新的字符串输出链表
class Solution {
public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {string n1, n2, s;//链表转字符串while(l1 l2){n1.push_back(l1-val0);l1 l1-next;n2.push_back(l2-val0);l2 l2-next;}if(l1)while(l1){n1.push_back(l1-val0);l1 l1-next;n2.insert(0,0);}if(l2)while(l2){n2.push_back(l2-val0);l2 l2-next;n1.insert(0,0);}//字符串大数加法int i, bit, carry 0, sum;for(i n1.size()-1; i 0; --i){sum n1[i]-0n2[i]-0carry;bit sum%10;carry sum/10;s.push_back(bit0);}if(carry)s.push_back(carry0);//低位在前//字符串输出链表ListNode *head NULL, *node;for(i 0; i s.size(); i){node new ListNode(s[i]-0);node-next head;head node;}return head;}
};