val:0">
当前位置:   article > 正文

力扣第二题完整代码 个人记录用_int n1=l1?l1->val:0

int n1=l1?l1->val:0

#include<stdio.h>
#include<stdlib.h>

struct ListNode {
    int val;
    struct ListNode* next;
};
typedef struct ListNode ListNode;

ListNode *Creat() {
    ListNode* head = NULL, * tail = NULL;
    int num;
    scanf_s("%d", &num);
    while (num != -1) {
        if (!head) {
            head = tail = (ListNode*)malloc(sizeof(ListNode));
            if (tail) {
                tail->val = num;
                tail->next = NULL;
            }            
        }else {
            tail->next = (ListNode*)malloc(sizeof(ListNode));
            if (tail->next) {
                tail->next->val = num;
                tail = tail->next;
                tail->next = NULL;
            }
        }
        scanf_s("%d", &num);
    }
    return head;
}

ListNode* AddTwoNum(ListNode* l1, ListNode* l2) {
    ListNode* head = NULL, * tail = NULL;
    int carry = 0;
    while (l1 || l2) {
        int n1 = l1 ? l1->val : 0;
        int n2 = l2 ? l2->val : 0;
        int sum = n1 + n2 + carry;
        if (!head) {
            head = tail = (ListNode*)malloc(sizeof(ListNode));
            if (tail) {
                tail->val = sum % 10;
                tail->next = NULL;
            }
        }else {
            tail->next = (ListNode*)malloc(sizeof(ListNode));
            if (tail->next)
                tail->next->val = sum % 10;
            tail = tail->next;
            tail->next = NULL;        
        }
        carry = sum / 10;
        if (l1)
            l1 = l1->next;
        if (l2)
            l2 = l2->next;  
    }
    if (carry) {
        tail->next = (ListNode*)malloc(sizeof(ListNode));
        if (tail->next) {
            tail->next->val = carry;
            tail = tail->next;
            tail->next = NULL;
        }
    }
    return head;
}

void Print(ListNode*l) {
    ListNode* p;
    p = l;
    if (!l)
        printf("链表为空");
    while (p != NULL) {
        printf("%d ", p->val);
        p = p->next;
    }
    printf("\n");
}


int main() {
    ListNode *l1,*l2;
    l1 = Creat();
    l2 = Creat();
    Print(AddTwoNum(l1, l2));
    return 0;
}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/stabc/article/detail/62826
推荐阅读
相关标签
  

闽ICP备14008679号