• 445. 两数相加 II


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

    输入: (7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)
    输出: 7 -> 8 -> 0 -> 7
     1 import java.util.Stack;
     2 
     3 public class AddTwoNumbersII {
     4     public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
     5         Stack<ListNode> st1 = new Stack<>();
     6         Stack<ListNode> st2 = new Stack<>();
     7         ListNode temp1 = l1;
     8         ListNode temp2 = l2;
     9         while(temp1 != null) {
    10             st1.push(temp1);
    11             temp1 = temp1.next;
    12         }
    13         while(temp2 != null) {
    14             st2.push(temp2);
    15             temp2 = temp2.next;
    16         }
    17         int flag = 0;
    18         ListNode res = new ListNode(-1);
    19         ListNode result = res.next;
    20         while(!st1.empty() && !st2.empty()) {
    21             int sum = st1.pop().val + st2.pop().val + flag;
    22             flag = 0;
    23             if(sum > 9) {
    24                 sum = sum % 10;
    25                 flag = 1;
    26             }
    27             ListNode newHead = new ListNode(sum);
    28             newHead.next = result;
    29             result = newHead;
    30         }
    31         while(!st1.empty()) {
    32             int sum = st1.pop().val + flag;
    33             flag = 0;
    34             if(sum > 9) {
    35                 sum = sum % 10;
    36                 flag = 1;
    37             }
    38             ListNode newHead = new ListNode(sum);
    39             newHead.next = result;
    40             result = newHead;
    41         }
    42         while(!st2.empty()) {
    43             int sum = st2.pop().val + flag;
    44             flag = 0;
    45             if(sum > 9) {
    46                 sum = sum % 10;
    47                 flag = 1;
    48             }
    49             ListNode newHead = new ListNode(sum);
    50             newHead.next = result;
    51             result = newHead;
    52         }
    53         if(flag == 1) {
    54             ListNode newHead = new ListNode(1);
    55             newHead.next = result;
    56             result = newHead;
    57         }
    58         return result;
    59     }
    60     
    61     class ListNode {
    62         int val;   
    63         ListNode next;
    64         ListNode(int x) { val = x; }
    65     }
    66 }
    无论有多困难,都坚强的抬头挺胸,人生是一场醒悟,不要昨天,不要明天,只要今天。不一样的你我,不一样的心态,不一样的人生,顺其自然吧
  • 相关阅读:
    介绍Shiro Annotation及Shiro标签的用法
    SpringMVC+Apache Shiro+JPA(hibernate)案例教学(四)基于Shiro验证用户权限,且给用户授权
    SpringMVC+Apache Shiro+JPA(hibernate)案例教学(一)整合配置
    Spring MVC之@RequestMapping 详解
    vimrc
    sk_buff深度解析
    ieee80211ax简介
    新基地
    dos格式迭代转为unix
    ath10k MAC地址
  • 原文地址:https://www.cnblogs.com/xiyangchen/p/10946903.html
Copyright © 2020-2023  润新知