2. 两数相加

简介:

/**

  • 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 head = new ListNode();
    ListNode result = head;
    boolean equalTen = false;
    //需要考虑l1比l2长,或者l2比l1长
    while(l1 != null || l2 != null){
        result.next = new ListNode();
        result = result.next;
        if(l1 != null && l2 == null){
            result.val = l1.val;
        }else if(l1 == null && l2 != null){
            result.val = l2.val;
        }
        else{
            result.val = l1.val + l2.val;
        }
        if(equalTen){
            result.val += 1;
        }
        if(result.val >= 10){
            equalTen = true;
            result.val -= 10;
        }else{
            equalTen = false;
        }
        if(l1!=null){
            l1=l1.next;
        }
        if(l2!=null){
            l2=l2.next;
        }
    }
   //需要考虑最后一位相加大于9的情况
    if(equalTen){
        result.next = new ListNode();
        result = result.next;
        result.val = 1;
    }
    return head.next;
}

}

相关文章
|
3月前
|
存储 C++
两数相加(C++)
两数相加(C++)
23 0
|
8天前
|
存储
【力扣】2. 两数相加、445. 两数相加Ⅱ
【力扣】2. 两数相加、445. 两数相加Ⅱ
|
2月前
|
存储 算法 Go
LeetCode第二题: 两数相加
 给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
LeetCode第二题: 两数相加
|
3月前
|
存储
leetcode-2:两数相加
leetcode-2:两数相加
22 0
|
7月前
454. 四数相加 II
454. 四数相加 II
27 0
|
7月前
|
存储 算法
LeetCode2-两数相加
LeetCode2-两数相加
|
10月前
|
存储
LeetCode 2. 两数相加
LeetCode 2. 两数相加
52 0
|
10月前
|
存储 Java Python
leetcode:2.两数相加
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
36 0
|
存储
LeetCode 2 两数相加
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
76 0