LeetCode -02两数相加 top100

原题链接 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;
           }
     }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值