zoukankan      html  css  js  c++  java
  • leetcode 2 两数相加

    由低位加到高位一般比较方便,考虑进位问题(通过引入flag和最后的if表达式),两树长度不相等的情况(通过引入三个while循环)

    需要变量:pre,cur两个链表节点,记录头结点之前的节点a=new ListNode(-1)

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
            ListNode* a=new ListNode(-1);
            ListNode*pre,*cur;
            pre=a;
            int flag=0;
            while(l1&&l2){
                int v=l1->val+l2->val+flag;
                flag=0;
                if(v>=10){flag=1,v=v%10;}
                cur=new ListNode(v);
                pre->next=cur;pre=cur;
                l1=l1->next,l2=l2->next;
            }
            while(l1){
                int v=l1->val+flag;
                flag=0;
                if(v>=10){flag=1,v=v%10;}
                cur=new ListNode(v);
                pre->next=cur;pre=cur;
                l1=l1->next;
            }
            while(l2){
                int v=l2->val+flag;
                flag=0;
                if(v>=10){flag=1,v=v%10;}
                cur=new ListNode(v);
                pre->next=cur;pre=cur;
                l2=l2->next;
            }
            if(flag){
                cur=new ListNode(1);
                pre->next=cur;
            }
            return a->next;
        }
    };
  • 相关阅读:
    CSS知识(18---21.CSS完毕)
    CSS 知识(13---)
    CSS编辑知识 ( 1---12 )
    CSS 选择器
    前端CSS
    修建泳池的题解
    2020-3-7模拟赛题解
    奶牛排队的题解
    数的拆分的题解
    青蛙王子的题解
  • 原文地址:https://www.cnblogs.com/joelwang/p/10914523.html
Copyright © 2011-2022 走看看