冲 ~ 牛客网

冲 ~ 牛客网,第1张

import java.util.*;

public class Solution {
    
    public ListNode addInList (ListNode head1, ListNode head2) {
        if(head1 == null ) return head2;
        if(head2 == null ) return head1;
        ListNode p = head1;
        ListNode q = head2;
        int l1 = 0;
        while(p!=null){
            l1 ++ ;
            p = p.next;
        }
        int l2 = 0;
        while(q!=null){
            l2 ++ ;
            q = q.next;
        }
        p = head1;
        q = head2;
        //对短的链表前面补0 
        if(l1 < l2){
            for(int i = 0 ; i < l2 - l1 ; i ++){
                ListNode p1 = new ListNode(0);
                p1.next = p;
                p = p1;
            }
        }else if(l1 > l2){
            for(int i = 0 ; i < l1 - l2 ; i ++){
                 ListNode q1 = new ListNode(0);
                q1.next = q;
                q = q1;
            }
        }
        ListNode res = add(p,q);
        if(res.val>=10){
            ListNode res1 = new ListNode(res.val/10);
            res.val%=10;
            res1.next= res;
            res = res1;
        }
        return res;
    }
    public ListNode add(ListNode head1 ,ListNode head2){
        ListNode res = new ListNode(0);
        //从尾开始 遍历到尾部开始计算
        if(head1.next != null && head2.next != null)
            res.next = add(head1.next,head2.next);
        int l = 0;
        //判断当前的下一个节点的val是否超过等于10;
        if(res.next!=null){
            l = res.next.val/10;
            res.next.val%=10;
        }
        int l1 = head1.val;
        int l2 = head2.val;
        res.val = l1 + l2 + l;
        return res;
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/799011.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-06
下一篇2022-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存