原题链接 https://leetcode-cn.com/problems/add-two-numbers/submissions/
解题注意点:
1.判断 两个链表的长度 讲一个加到另一个上面 如果一个到达末尾,怎么处理
2.末尾是不是需要进位,如果需要进位,将当前节点的下一个节点 先赋值为0;
- 思路来源:看了B站大佬的讲解
- https://www.bilibili.com/video/BV11C4y1t7iY?spm_id_from=333.999.0.0
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode headl1=l1;
ListNode headl2=l2;
while(headl1!=null){
if (headl2!=null){
headl1.val=headl1.val+headl2.val;
headl2=headl2.next;
}
// 如果 l1 长度比较小,他就先为空,将他的指针指向L2跳出
if (headl1.next == null&&headl2!=null){
headl1.next=headl2;
break;
}
headl1=headl1.next;
}
mergel1(l1);
return l1;
}
// 注意该函数为void
public void mergel1(ListNode head){
while(head!=null){
if(head.val>=10){
head.val=(head.val)%10;
// 判断最后一位是不是需要进位如果需要进位 将当前节点的下一个节点先赋值为0
if (head.next==null)
{
head.next=new ListNode(0) ;
}
head.next.val+=1;
}
head=head.next;
}
}
}