欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LeetCode-2-两数相加

程序员文章站 2022-03-06 08:22:11
...

题目链接https://leetcode-cn.com/problems/add-two-numbers/

LeetCode-2-两数相加
LeetCode-2-两数相加

方法:直接将结点对应值相加

class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) 
    {
        ListNode*result=NULL,*temp=NULL;  //一个记录头,一个记录尾(方便新新结点放入)
        int sum=0;
        while(l1!=NULL||l2!=NULL)
        {
            ListNode *NewNode= new ListNode;
            if(l1!=NULL&&l2!=NULL)
            {
               sum+=(l1->val+l2->val);
              
            }
            else if(l1!=NULL&&l2==NULL)
            {
                sum+=(l1->val);
            }
            else if(l1==NULL&&l2!=NULL)
            {
                sum+=(l2->val);
            }
             
               NewNode->val=sum%10;
               sum/=10;
               if(result==NULL&&temp==NULL)
               {
                  result=NewNode;
                  temp=NewNode;
               }
               else
               {
                   temp->next=NewNode;
                   temp=NewNode;
               }

            //更新l1 l2位置
            if(l1!=NULL)
            {
                l1=l1->next;
            }
            if(l2!=NULL)
            {
                l2=l2->next;
            }
        }

        if(sum!=0) //如果最后还有余数
        {
            ListNode *NewNode= new ListNode;
            NewNode->val=sum;
            if(result==NULL&&temp==NULL)
               {
                  result=NewNode;
                  temp=NewNode;
               }
               else
               {
                   temp->next=NewNode;
                   temp=NewNode;
               }
        }
        return result;
    }
};
相关标签: 力扣题目总结