美文网首页
LeetCode-两数相加

LeetCode-两数相加

作者: eagerabu | 来源:发表于2020-07-01 10:34 被阅读0次

题设要求:

两数相加.jpg

完整代码:

  public class ListNode {
      int val;
      ListNode next;
      ListNode(int x) { val = x; }
 }

public class Solution {
    public int l1Length=0;
    public int l2Length=0;

    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode headListNode=new ListNode(0);   //返回结果的链表头指针
        ListNode firstNode=l1;           //链表1                 
        ListNode secondNode=l2;          //链表2
        ListNode curNode=headListNode;   //目前操作节点指针
        boolean isCarry=false;
        
        while(firstNode!=null || secondNode!=null){
            //获取两链表同位节点值
            int num1=(firstNode==null)?0:firstNode.val;
            int num2=(secondNode==null)?0:secondNode.val;
            
            //计算节点值
            int sum;
            if(isCarry){
                sum=num1+num2+1;
            }else{
                sum=num1+num2;
            }
            
            //是否有进位
            isCarry=(sum/10)>0;
            
            //增加新结点
            curNode.next=new ListNode(sum%10);
            
            //准备获取下一个节点值
            curNode=curNode.next;
            
            //存在链表1已经遍历完成的情况
            if(firstNode!=null){
                firstNode=firstNode.next;
            }
            
            //存在链表2已经遍历完成的情况
            if(secondNode!=null){
                secondNode=secondNode.next;
            }
        }
        
        //两条链表节点遍历完成判断最后是否留有进位
        if(isCarry){
            curNode.next=new ListNode(1);
        }
    
        return headListNode.next;
    }
}

相关文章

  • LeetCode-两数相加

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

  • LeetCode-两数相加

    题设要求: 完整代码:

  • LeetCode-两数相加

    题目链接 => 戳这里 其实这道题理解之后本身并不难,需要注意的有3点: 1.链表节点位置的转移需要细心点,每条链...

  • 算法-leetcode-链表-两数相加

    题目:2. 两数相加 题目描述: 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 ...

  • 两数相加

    题目 You are given two non-empty linked lists representing ...

  • 两数相加

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

  • 两数相加

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

  • 两数相加

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

  • 两数相加

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

  • 两数相加

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

网友评论

      本文标题:LeetCode-两数相加

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