<2>——Add Two Numbers

来源:互联网 发布:附近编程培训班 编辑:程序博客网 时间:2024/06/14 10:06

2、Add Two Numbers

链表求和

你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。

样例

给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null


代码:

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {}//新建链表时,必须有初始值 * }; */class Solution {public:    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {        ListNode l3(0);//创建链表是不加引用符的        ListNode* curr=&l3;        int t=0;        while(l1||l2||t)        {            int sum=t+(l1?l1->val:0)+(l2?l2->val:0);            t=sum/10;            curr->next=new ListNode(sum%10);            curr=curr->next;            l1=l1?l1->next:l1;            l2=l2?l2->next:l2;        }        return l3.next;    }};


原创粉丝点击