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 }
     
  • 相关阅读:
    NYOJ 23 取石子(一)
    XYNUOJ 2026 素数环
    XYNUOJ 1756 魔法工会
    XYNUOJ 1784 胜利大逃亡
    NYOJ 18 The Triangle
    NYOJ 737 合并石子
    XYNUOJ 问题 B: 敌兵布阵
    NYOJ 1063 生活的烦恼
    XYNUOJ 1774 最少拦截系统
    XYNUOJ 1248 排队打水问题
  • 原文地址:https://www.cnblogs.com/zle1992/p/7735156.html
Copyright © 2011-2022 走看看