Leetcode_2

原创 2016年08月30日 10:20:36
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {
    if(l1==NULL&&l2==NULL)
        return NULL;
    struct ListNode* operationNode =(struct ListNode*)malloc(sizeof(struct ListNode));
    struct ListNode* originalNode=operationNode;
    bool updateBit=false;
    int val=0;
    while(l1||l2){
        if(l1){
            val+=l1->val;
            l1=l1->next;
        }
        if(l2){
            val+=l2->val;
            l2=l2->next;
        }
        if(updateBit){
            val+=1;
        }
        if(val/10) updateBit=true;
        else updateBit=false;
        operationNode->val=val%10;
        operationNode->next=NULL;
        if(l1||l2){
            operationNode->next=(struct ListNode*)malloc(sizeof(struct ListNode));
            operationNode=operationNode->next;
            operationNode->val=0;
            operationNode->next=NULL;
        }
        else if(updateBit){
            operationNode->next=(struct ListNode*)malloc(sizeof(struct ListNode));
            operationNode=operationNode->next;
            operationNode->val=1;
            operationNode->next=NULL;
        }
        val=0;
    }
    return originalNode;
}






版权声明:本文为博主原创文章,未经博主允许不得转载。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Leetcode_2
举报原因:
原因补充:

(最多只允许输入30个字)