• 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 }
     
  • 相关阅读:
    StarUML
    第二周周二日报
    第二周周一日报
    第一周周末报
    第一周周四日报
    第一周第三天日报
    软件开发总结
    构建之法总结
    《构建之法》第六章
    个人日志7
  • 原文地址:https://www.cnblogs.com/zle1992/p/7735156.html
Copyright © 2020-2023  润新知