LeetCode T2

Posted Runs Deep

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode T2相关的知识,希望对你有一定的参考价值。

 

 

 

 

 

 使用依次相加,记录进位的方式进行运算,下面是我的解答,leetcode上运行耗时20ms,内存占用7.3MB

struct ListNode{
    int val;
    struct ListNode *next;
};
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2){
    struct ListNode *p1,*p2;
    p1=l1;p2=l2;
    struct ListNode *head=(struct ListNode *)malloc(sizeof(struct ListNode));
    head->next=NULL;
    struct ListNode *q=head;
    int flag_pre=0,flag_this=0;//用来记录进位
    while(p1 || p2){
        int tmp=0;
        if(p1==NULL && p2) tmp=p2->val+flag_pre;
        else if(p2==NULL && p1) tmp=p1->val+flag_pre;
        else tmp=p1->val+p2->val+flag_pre;
        flag_pre=0;
        if(tmp>=10){
            flag_this=1;
            flag_pre=1;
        };
        struct ListNode *tail=(struct ListNode *)malloc(sizeof(struct ListNode));
        tail->val=tmp-flag_this*10;
        flag_this=0;
        tail->next=NULL;
        q->next=tail;
        q=q->next;
        if(p1) p1=p1->next;
        if(p2) p2=p2->next;
    }
    if(!(p1&&p2) && flag_pre==1){
        struct ListNode *tail=(struct ListNode *)malloc(sizeof(struct ListNode));
        tail->val=1;
        tail->next=NULL;
        q->next=tail;
        q=q->next;
    }
    return head->next;
}

 

以上是关于LeetCode T2的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点# LeetCode程序员面试金典:检查子树

[Leetcode] Merge Two Binary Trees

leetcode T2 两数相加详解

leetcode_1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold_[二维前缀和](代码片段

Leetcode 617. Merge Two Binary Trees

Leetcode617 Merge Two Binary Trees