美文网首页
2. 两数相加

2. 两数相加

作者: bangbang2 | 来源:发表于2020-07-29 15:00 被阅读0次
image.png
image.png

如上图所示,carry代表是否进位
1:sum把对应的l1和l2值加起来,同时也把carry值加起来
2:curr.next=sum%10,取10的模,同时carry=sum/10
在while循环后,如果carry还大于0,那就curr.next=new ListNode(carry),相当于再重新弄一个节点

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
       ListNode start=new ListNode();
       ListNode curr=start;
       int carry=0;
       
       while(l1!=null||l2!=null){
           int sum=0;
           if(l1!=null){
             sum+=l1.val;
             l1=l1.next;
           }
           if(l2!=null){
             sum+=l2.val;
             l2=l2.next;
           }
          sum=sum+carry;
          curr.next=new ListNode(sum%10);
          curr=curr.next;
          carry=sum/10; 
       }
       if(carry>0) curr.next=new ListNode(carry);
       return start.next;
    }
}

相关文章

  • 2. 两数相加

    给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表...

  • 2. 两数相加

  • 2. 两数相加

    一、题目原型: 给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加...

  • 2. 两数相加

    题目 解析 本题只需要遍历一下单链表,将单链表的值添加到StringBuilder对象后然后转化成数字进行运算再反...

  • 2.两数相加

    题目 思路1.记录返回结构体2.两个结构体的两位数相加,记录进位3.位移结构体,赋值代码

  • 2. 两数相加

    https://leetcode-cn.com/problems/add-two-numbers/descript...

  • 2. 两数相加

    补充:我们现在的这种第一个节点是头节点。所以要 root.next如果我的 不想用这种方式 会遇到这样的问题。

  • 2. 两数相加

    链接:https://leetcode-cn.com/problems/add-two-numbers/ 代码地址...

  • 2.两数相加

    给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只...

  • 2. 两数相加

    题目 分析 解题方案: 初等数学 我们使用变量来跟踪进位,并从包含最低有效位的表头开始模拟逐位相加的过程。 就像你...

网友评论

      本文标题:2. 两数相加

      本文链接:https://www.haomeiwen.com/subject/phwhrktx.html