zoukankan      html  css  js  c++  java
  • 445. Add Two Numbers II



    You are given two non-empty linked lists representing two non-negative integers. The most significant digit comes first and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

    You may assume the two numbers do not contain any leading zero, except the number 0 itself.

    Follow up:
    What if you cannot modify the input lists? In other words, reversing the lists is not allowed.

    Example:

    Input: (7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)
    Output: 7 -> 8 -> 0 -> 7
    

     思路:用2个stack

     1 class Solution {
     2     public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
     3         Stack<Integer> s1 = new Stack<Integer>();
     4         Stack<Integer> s2 = new Stack<Integer>();
     5         while(l1!=null){ s1.push(l1.val);l1=l1.next;}
     6         while(l2!=null){ s2.push(l2.val);l2=l2.next;}
     7         int sum = 0;
     8         ListNode list = new ListNode(0);
     9         while(!s1.empty()||!s2.empty()){
    10             if(!s1.empty()) sum +=s1.pop();
    11             if(!s2.empty()) sum +=s2.pop();
    12             list.val = sum%10;
    13             ListNode head = new ListNode(sum/10);
    14             head.next = list;
    15             list = head;
    16             sum /=10;
    17         }
    18         return list.val==0 ? list.next : list;
    19     }
    20 }
     
  • 相关阅读:
    (全国多校重现赛一) H Numbers
    (全国多校重现赛一)E-FFF at Valentine
    (全国多校重现赛一)B-Ch's gifts
    (全国多校重现赛一)A-Big Binary Tree
    UVA-10391 Compoud Words
    HDU-1027Ignatius and princess II
    CodeForces-501B
    UVA-136Ugly numbers
    UVA-101
    UVA-10474
  • 原文地址:https://www.cnblogs.com/zle1992/p/7735156.html
Copyright © 2011-2022 走看看