445. 两数相加 II


445. 两数相加 II

给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。

你可以假设除了数字 0 之外,这两个数字都不会以零开头。

进阶:

如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。

示例:

输入:(7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 8 -> 0 -> 7

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/add-two-numbers-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

/**
 * 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;
        }

        ListNode* ans = nullptr;
        int jin = 0;
        while(!s1.empty() || !s2.empty() || jin){
            int a,b;
            if(s1.empty()){
                a = 0;
            }
            else {
                a = s1.top();
                s1.pop();
            }
            if(s2.empty()){
                b = 0;
            }
            else {
                b = s2.top();
                s2.pop();
            }
            int tem = a+b+jin;
            if(tem>=10){
                jin=1;
                tem = tem%10;
            }
            else {
                jin = 0;
            }

            ListNode *temp = new ListNode(tem);

            temp->next= ans;
            ans = temp;


        }
        return ans;
    }
};

文章作者: anlen123
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 anlen123 !
 上一篇
365. 水壶问题 365. 水壶问题
365. 水壶问题有两个容量分别为 x升 和 y升 的水壶以及无限多的水。请判断能否通过使用这两个水壶,从而可以得到恰好 z升 的水? 如果可以,最后请用以上水壶中的一或两个来盛放取得的 z升 水。 你允许: 装满任意一个水壶 清空任
2020-05-07 anlen123
下一篇 
55. 跳跃游戏 55. 跳跃游戏
55. 跳跃游戏难度中等643 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释:
2020-05-07 anlen123
  目录