zoukankan      html  css  js  c++  java
  • Add Two Numbers leetcode java

    题目:

    You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

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

    题解:

    这道题就是给的加数是倒着给的,你返回的结果也是倒着写的,所以进位也反着进就好。

    维护一个carry,加数大于9时候carry为1,也要注意两个数相加如果大于8的话,要写取模后的值。

    代码如下:

     1     public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
     2         if(l1==null)
     3             return l2;
     4         if(l2==null)
     5             return l1;
     6         
     7         int carry = 0;
     8         ListNode newhead = new ListNode(-1);
     9         ListNode l3 = newhead;
    10         
    11         while(l1!=null || l2!=null){
    12             if(l1!=null){
    13                 carry += l1.val;
    14                 l1 = l1.next;
    15             }
    16             if(l2!=null){
    17                 carry += l2.val;
    18                 l2 = l2.next;
    19             }
    20             
    21             l3.next = new ListNode(carry%10);
    22             carry = carry/10;
    23             l3 = l3.next;
    24         }
    25         
    26         if(carry == 1)
    27             l3.next=new ListNode(1);
    28         return newhead.next;
    29     }

     Reference: http://www.programcreek.com/2012/12/add-two-numbers/

  • 相关阅读:
    Python try/except/finally
    EmailMessage类
    HTML DOM 初学笔记
    JavaScript 初学备忘录
    html style标签
    Django 导出csv文件 中文乱码问题
    Html 列表实现展开和收起
    Django CreateView 简单使用
    Django用户认证
    Nginx负载均衡配置实例详解
  • 原文地址:https://www.cnblogs.com/springfor/p/3864493.html
Copyright © 2011-2022 走看看