class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
//用于进位计数
int addOne = 0;
//创建一个新节点,数据域为0;
ListNode top = new ListNode(0);
//此节点(指针)用于后面存放数据
ListNode head = top;
//l1 l2 addOne 只要其中一个不为空就要进行加法计算
while(l1 != null || l2 != null || addOne != 0){
//判断第一个和第二链表是否为空,为空就为零,不为空读取数据域里面的数据
int l1Val = l1 != null ? l1.val : 0;
int l2Val = l2 != null ? l2.val : 0;
//进行加法计算 不要忘了进位
int sum = l1Val + l2Val + addOne;
//进位计数
addOne = sum/10;
//存储数据
head.next = new ListNode(sum%10);
//存储指针下移
head = head.next;
两个相加的链表也要下移
if(l1 != null) l1 = l1.next;
if(l2 != null)l2 = l2.next;
}
//返回头部指针便于查询
return top.next;
}
}
07-19
419

06-30
493
