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;
}

}

相关文章
|
6月前
|
存储 C++
两数相加(C++)
两数相加(C++)
41 0
|
1月前
|
存储 算法 C++
LeetCode第二题(两数相加)
这篇文章是关于LeetCode上第二题“两数相加”的题解,其中详细描述了如何使用C++语言来实现将两个逆序存储的非负整数链表相加,并返回结果链表的算法。
28 0
LeetCode第二题(两数相加)
|
3月前
|
算法
LeetCode第2题两数相加
该文章介绍了 LeetCode 第 2 题两数相加的解法,通过同时遍历两个链表的头节点,创建新链表接收计算结果,时间复杂度为 O(n)。
LeetCode第2题两数相加
|
3月前
|
JavaScript 前端开发 PHP
leetcode——两数相加【二】
leetcode——两数相加【二】
32 0
|
5月前
LeetCode###445. 两数相加 II
LeetCode###445. 两数相加 II
29 2
|
5月前
2.两数相加
2.两数相加
|
6月前
|
存储 算法 Go
LeetCode第二题: 两数相加
 给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
LeetCode第二题: 两数相加
|
6月前
|
存储
【力扣】2. 两数相加、445. 两数相加Ⅱ
【力扣】2. 两数相加、445. 两数相加Ⅱ
|
6月前
|
存储
leetcode-2:两数相加
leetcode-2:两数相加
41 0
|
存储 算法
LeetCode2-两数相加
LeetCode2-两数相加