• LeetCode


    /**
     * 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* ans = l1;
            while(1){
                l1->val +=l2->val;
                if(l1->next == NULL){
                    if(l2->next == NULL){
                        if(l1->val>9){
                            l1->next = new ListNode(1);
                            l1->val %=10;                       
                        }
                        return ans;
                    }
                    l1->next = new ListNode(0);
     
                }
                if(l2->next==NULL){
                    l2->next = new ListNode(0);
                }
                l1->next->val+=l1->val/10;
                l1->val%=10;
                l1=l1->next;
                l2=l2->next;
            }
     
        }
    };
     
     
    1559 / 1559 test cases passed.
    Status: Accepted
    Runtime: 35 ms
     
     
    class Solution {
    public:
        ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        ListNode *ansd =new ListNode(0);
        ListNode *ans = ansd;
        int as = 0;
        while(l1||l2||as!=0){
            if(l1){
                as+=l1->val;
                l1 = l1->next;
            }
            if(l2){
                as+=l2->val;
                l2 = l2->next;
            }
            if(as>9){
                ans->next = new ListNode(as-10);
                as = 1;
            }else{
                ans->next = new ListNode(as);
                as = 0;
            }
            ans = ans->next;
        }
        return ansd->next;
        }
    };
    1562 / 1562 test cases passed.
    Status: Accepted
    Runtime: 32 ms
    class Solution {
    public:
        ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        ListNode *ans = l1;
        while(l1->next&&l2->next){
            l1->val+=l2->val;
            if(l1->val>9){
                l1->val-=10;
                l1->next->val+=1;
            }
            l1 = l1->next;
            l2 = l2->next;
        }
        while(l1->next == NULL && l2 -> next){
            l1 ->next = new ListNode(0);
            l1 ->val += l2 ->val;
            if(l1 -> val>9){
                l1 ->val -= 10;
                l1 ->next ->val +=1;
            }
            l1 = l1 ->next;
            l2 = l2 ->next;
        }
        {
            l1->val+=l2->val;
            while(l1->val>9){
                l1->val-=10;
                if(l1->next == NULL){
                    l1->next = new ListNode(0);
                }
                l1->next->val+=1;
                l1=l1->next;
            }
        }
        return ans;
        }
    };
     
     
    1562 / 1562 test cases passed.
    Status: Accepted
    Runtime: 32 ms
     
  • 相关阅读:
    Java数据结构和算法总结-数组、二分查找
    Android开发必知--使用View.setId的正确姿势
    Fiddler基本用法以及如何对手机抓包
    Android学习笔记(十四)方便实用的首选项-PreferenceActivity
    Android学习笔记(十三)SharedPreference必须掌握的基础
    设计模式之单例模式
    关于如何控制一个页面的Ajax读数据只读一次的简单解决办法!
    ASP.NET MVC 表单提交多层子级实体集合数据到控制器中
    使用Bootstrap的popover标签中嵌入插件,并且为插件注册事件实现Ajax与后台交互
    关于.Net使用企业库访问MySql数据库
  • 原文地址:https://www.cnblogs.com/clover-xuqi/p/7154762.html
Copyright © 2020-2023  润新知