提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、解题思路
1.链表遍历 while (head1!=null){head1 = head1.next;}
2.逐位相加:n1+n2,进位值carry,和:sum=n1+n2+carry;
3.取余:若sum>10;取余进1
4.同时要考虑l1,l2位数不同,分为l1>=l2; l2>l1;
二、具体代码
代码如下:
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode head1=l1;
ListNode head2=l2;
while (head1!=null){
if(head2!=null){
head1.val+=head2.val;
head2=head2.next;
}
if(head1.next==null&&head2!=null){
head1.next=head2;
break;
}
head1 = head1.next;
}
merge(l1);
return l1;
}
public void merge(ListNode head){
while(head!=null){
if(head.val>=10){
head.val=head.val%10;
if(head.next==null){
head.next=new ListNode(0);
}
head.next.val+=1;
}
head=head.next;
}
}
}