第二题 两数相加

97 阅读1分钟

问题描述

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

来源:力扣(LeetCode)
链接:leetcode-cn.com/problems/ad…
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解决代码

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */


struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2){
    int a;
    int b;
    int sum;
    struct ListNode *p,*s;
    //*p=ListNode;
    while(l1->val !=null){
        a=(a*10)+l1->val;
        l1=l1->next;
    }
    while(l2->val !=null){
        b=(b*10)+l1->val;
        l1=l1->next;
    }
    sum=a+b;
    while(sum<1){
        p=s;
        p->val=sum %10;
        sum=sum/10;
        s->next=p;
    }
    return p;
}