题目:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807
题解思路:链表相加,注意链表长度,并且其值为对应值+进位值,进位值的表示为当前和/10; 其值为当前和%10
class ListNode { int val; ListNode next; ListNode() {} ListNode(int val) { this.val = val; } ListNode(int val, ListNode next) { this.val = val; this.next = next; } } public class leetcode2 { public ListNode addTwoNumbers(ListNode l1,ListNode l2){ ListNode l3 = new ListNode(0); ListNode p = l3; int temp=0; while(l1!=null || l2!=null){ int l1Val = l1!=null?l1.val:0; int l2Val = l2!=null?l2.val:0; int sumVal = l1Val+l2Val+temp; temp = sumVal/10; p.next = new ListNode(sumVal%10); p = p.next; if (l1!=null){ l1 = l1.next; } if (l2!=null){ l2=l2.next; } } if (temp!=0){ p.next = new ListNode(temp); p = p.next; } return l3.next; } }