給出兩個 非空 的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,而且它們的每一個節點只能存儲 一位 數字。網絡
若是,咱們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。code
您能夠假設除了數字 0 以外,這兩個數都不會以 0 開頭。leetcode
示例:it
輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
輸出:7 -> 0 -> 8
緣由:342 + 465 = 807io
來源:力扣(LeetCode)
連接:https://leetcode-cn.com/problems/add-two-numbers
著做權歸領釦網絡全部。商業轉載請聯繫官方受權,非商業轉載請註明出處。class
/**
* 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 pre = new ListNode(0);
ListNode cur = pre;//將pre的地址賦給cur
int carry = 0;
while(l1 != null || l2 != null) {//while循環條件爲只要有一個鏈表不空就繼續進行
int x = l1 == null ? 0 : l1.val;//空的
int y = l2 == null ? 0 : l2.val;
int sum = x + y + carry;
carry = sum / 10;
sum = sum % 10;
cur.next = new ListNode(sum);List
cur = cur.next;
if(l1 != null)
l1 = l1.next;
if(l2 != null)
l2 = l2.next;
}
if(carry == 1) {
cur.next = new ListNode(carry);
}
return pre.next;
}
}循環
做者:guanpengchn
連接:https://leetcode-cn.com/problems/add-two-numbers/solution/hua-jie-suan-fa-2-liang-shu-xiang-jia-by-guanpengc/
來源:力扣(LeetCode)
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。gc