一、题目描述
二、代码解决
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
//这里声明一个节点当作头节点,其值为0
ListNode a=new ListNode(0);
ListNode c=a;
int b=0;//用于判断是否进一
// 判断是否有下一个或进一的值是否是0
while(l1!=null||l2!=null||b!=0){
// 判断当前是否是空值
int a1,a2;
if(l1!=null){
a1=l1.val;
}else{
// 是空赋值为0
a1=0;
}
if(l2!=null){
a2=l2.val;
}else{
a2=0;
}
int sum=a1+a2+b;
// 看是否进一
b=sum/10;
// 声明一个新的节点,并将这两个数传入(因为只传入一位,进一的值会在下一个循环中进去,不包含进一的值)
ListNode n1=new ListNode(sum%10);
// 将新添加的节点添加进去
c.next=n1;
// 改变当前指针指向
c=n1;
// 将目前指针修改为下一个
if(l1!=null){
l1=l1.next;
}
if(l2!=null){
l2=l2.next;
}
}
// 循环结束返回节点(因为前边默认生成了一个头节点其值为0)
return a.next;
}
}