网站的建设公司简介,云南高端建设网站,百度推广费用报价单,百度seo哪家公司好1. 题目
给定两个用链表表示的整数#xff0c;每个节点包含一个数位。
这些数位是反向存放的#xff0c;也就是个位排在链表首部。
编写函数对这两个整数求和#xff0c;并用链表形式返回结果。
示例#xff1a;
输入#xff1a;(7 - 1 - 6) (5 - 9 -每个节点包含一个数位。
这些数位是反向存放的也就是个位排在链表首部。
编写函数对这两个整数求和并用链表形式返回结果。
示例
输入(7 - 1 - 6) (5 - 9 - 2)即617 295
输出2 - 1 - 9即912
进阶假设这些数位是正向存放的请再做一遍。示例
输入(6 - 1 - 7) (2 - 9 - 5)即617 295
输出9 - 1 - 2即912来源力扣LeetCode 链接https://leetcode-cn.com/problems/sum-lists-lcci 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
2. 解题
直接求和加到l1上注意处理进位
class Solution {
public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {if(!l1)return l2;if(!l2)return l1;int carry 0, bit, sum;ListNode *prev NULL, *newNode, *head l1;while(l1 || l2 || carry){sum (l1 ? l1-val : 0)(l2 ? l2-val : 0)carry;bit sum%10;carry sum/10;if(l1){l1-val bit;prev l1;l1 l1-next;} else{newNode new ListNode(bit);prev-next newNode;prev prev-next;}if(l2)l2 l2-next;}return head;}
};