加粗样式### 代码分析
// 两数相加
class Solution{
public ListNode addTwoNumbers(ListNode l1, ListNode l2){
ListNode s1 = l1; // 定义两个对象
ListNode s2 = l2;
while(s1 != null && s2 != null){ // 判断两个数是否为0
if(s1.val + s2.val >= 10){ //判断两个数当前位之和是否大于10
if(s1.next == null){ // 如果s1指向下一位为0,置1,
s1.next = new ListNode(1);
}else if(s2.next == null){ // 如果s2指向下一位为0,置1,
s2.next = new ListNode(1);
}else{ // 如果s1和s2,指向下一位为0,在s1的下一位+1,
s1.next.val += 1;
}
}
s1.val = (s1.val + s2.val) % 10; //s1 和s2的当前位相加,然后取模,
s2.val =s1.val; //将s1的值赋值给s2
s1 = s1.next; //s1的结点向右移动一位
s2 = s2.next; //s2的结点向右移动一位
}
return s1 == null?l2:l1; //如果s1为0,则返回s2,如果s2为0,返回s1
}
}
引用
https://leetcode-cn.com/u/jochu/