LeetCode2. Add Two Numbers

来源:互联网 发布:adobe官网软件下载 编辑:程序博客网 时间:2024/06/05 18:14

题目链接

用链表反向代表数字的每一位,求和。

开始蠢到用数字代表每个表然后加一起,最后再转换成链表,后来发现这么出题就是在解高精度呀!从链表的开始就是个位,之后每位记录下进位就可以了。

class Solution {public:    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {        ListNode *H = new ListNode(0);        ListNode *pre = H;        int f = 0, cnt = 10;        while(1){            if(l1){                f += l1->val;                l1 = l1->next;            }            if(l2){                f += l2->val;                l2 = l2->next;            }            ListNode *N = new ListNode(f%10);            pre->next = N;            f /= 10;            pre = N;            if(!l1 && !l2 && !f)break; //两个表都空并且无进位时终止        }        return H->next;    }};
0 0