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

        ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) {
            if (l1->next == nullptr && l1->val == 0)
                return l2;
            else if (l2->next == nullptr && l2->val == 0)
                return l1;
            int carry = 0;
            ListNode head(0), *temp = &head;
            while (l1 != nullptr && l2 != nullptr) {
                l1->val = l1->val + l2->val + carry;
                if (l1->val > 9) {
                    carry = 1;
                    l1->val %= 10;
                } else
                    carry = 0;
                temp->next = l1;
                temp = temp->next;
                l1 = l1->next;
                l2 = l2->next;
            }
            if (carry) {
                ListNode *it = (l1 != nullptr) ? l1 : l2 != nullptr ? l2 : nullptr;
                if (it != nullptr) {
                    while (true) {
                        it->val += carry;
                        temp->next = it;
                        temp=temp->next;
                        if (it->val == 10) {
                            carry = 1;
                            it->val = 0;
                            if (it->next != nullptr)
                                it = it->next;
                            else {
                                temp->next = new ListNode(1);
                                break;
                            }
                        } else
                            break;
                    }
                } else
                    temp->next = new ListNode(1);
            } else
                temp->next = (l1 != nullptr) ? l1 : l2 != nullptr ? l2 : nullptr;
            return head.next;
        }
    
  • 相关阅读:
    第4章 Android移植环境搭建
    第3章 Android移植平台工具介绍
    第2章
    第1章 Android系统的编译和移植实例:
    nfs
    TFTP服务器搭建
    根系统制作
    nfs挂载
    uboot的编译
    交叉工具链的搭建方法
  • 原文地址:https://www.cnblogs.com/INnoVationv2/p/10171846.html
Copyright © 2011-2022 走看看