問題描述:
????給出兩個(gè) 非空 的鏈表用來表示兩個(gè)非負(fù)的整數(shù)。其中退渗,它們各自的位數(shù)是按照 逆序 的方式存儲(chǔ)的谅将,并且它們的每個(gè)節(jié)點(diǎn)只能存儲(chǔ) 一位 數(shù)字垂攘。
????如果瓶竭,我們將這兩個(gè)數(shù)相加起來,則會(huì)返回一個(gè)新的鏈表來表示它們的和。
????假設(shè)除了數(shù)字 0 之外,這兩個(gè)數(shù)都不會(huì)以 0 開頭声登。
示例:
????輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
????輸出:7 -> 0 -> 8
????原因:342 + 465 = 807
思路:
????按照整數(shù)相加的方式,兩個(gè)整數(shù)對(duì)應(yīng)的位上相應(yīng)的數(shù)字分別相加揣苏,如果結(jié)果大于10的話悯嗓,向上進(jìn)位
java語(yǔ)言實(shí)現(xiàn):
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
????ListNode head = new ListNode(0);
????ListNode temp = head;
????int sum = 0;
????while(null != l1 || null != l2){
????????if(null != l1){
????????????sum += l1.val;
????????????l1 = l1.next;
????????}
????????if(null != l2){
????????????sum += l2.val;
????????????l2 = l2.next;
????????}
????????temp.next = new ListNode(sum % 10);
????????sum /= 10;
????????temp = temp.next;
????}
????if(sum > 0){
????????temp.next = new ListNode(sum);
????}
????return head.next;
}