一道学习题-力扣

还没有做完,验证完,先保存下;

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

struct ListNode* addTwoNumbers(struct ListNode* L1, struct ListNode* L2){
    
    int flag1 = 0;
    int flag2 = 0;
    struct ListNode* ret = (struct ListNode *)malloc(sizeof(struct ListNode));
    memset(&ret, 0, sizeof(struct ListNode));
    struct ListNode* cur = ret;
    do{
        int tmp = 0;
        if(L1 != NULL && L2 != NULL)
        {
            tmp = L1->val + L2->val + flag1;
        } else if(L1 == NULL)
        {
            tmp = L2->val + flag1;
        } else if(L2 == NULL)
        {
            tmp = L1->val + flag1;
        } else {
            tmp = flag1;
        }
        if(tmp >= 10)
        {
            tmp = tmp - 10;
            flag2 = 1;
        }
        
        cur->val = tmp;
        cur->next = NULL;
        flag1 = flag2;
        flag2 = 0;
        L1 = L1->next;
        L2 = L2->next;

        struct ListNode *one = (struct ListNode*)malloc(sizeof(struct ListNode));
        memset(one, 0, sizeof(struct ListNode));
        cur->next = one;
        cur = cur->next;

    }while ((!L1->next) &&(!L2->next));
    
    free(cur);
}

发布了63 篇原创文章 · 获赞 56 · 访问量 31万+

猜你喜欢

转载自blog.csdn.net/yuyantai1234/article/details/104822703