zoukankan      html  css  js  c++  java
  • 445 Add Two Numbers II 两数相加 II

    给定两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。
    你可以假设除了数字 0 之外,这两个数字都不会以零开头。
    进阶:
    如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。
    示例:
    输入: (7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)
    输出: 7 -> 8 -> 0 -> 7
    详见:https://leetcode.com/problems/add-two-numbers-ii/description/

    C++:

    /**
     * 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) {
            stack<int> s1, s2;
            while (l1) 
            {
                s1.push(l1->val);
                l1 = l1->next;
            }
            while (l2)
            {
                s2.push(l2->val);
                l2 = l2->next;
            }
            int sum = 0;
            ListNode *res = new ListNode(0);
            while (!s1.empty() || !s2.empty())
            {
                if (!s1.empty())
                {
                    sum += s1.top(); 
                    s1.pop();
                }
                if (!s2.empty()) 
                {
                    sum += s2.top();
                    s2.pop();
                }
                res->val = sum % 10;
                ListNode *head = new ListNode(sum / 10);
                head->next = res;
                res = head;
                sum /= 10;
            }
            return res->val == 0 ? res->next : res;
        }
    };
    

     参考:https://www.cnblogs.com/grandyang/p/6216480.html

  • 相关阅读:
    Java泛型【转】
    沉着
    selenium 自动化测试面试题及答案
    50道JAVA基础编程练习题
    50道JAVA基础编程练习题
    Kibana+Logstash+Elasticsearch 日志查询系统
    Java中this和super的用法总结
    Tensorflow官方文档中文版——第二章(瞎奖杯写)
    LATEX ——WinEdt 破解
    超参数优化
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8900589.html
Copyright © 2011-2022 走看看