我是靠谱客的博主 开放自行车,最近开发中收集的这篇文章主要介绍给定两个用链表表示的整数,每个节点包含一个数位。,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

给定两个用链表表示的整数,每个节点包含一个数位。

这些数位是反向存放的,也就是个位排在链表首部。

编写函数对这两个整数求和,并用链表形式返回结果。

 

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode result = l1,pre =null;
        int more = 0;
        while(l1!=null&&l2!=null){
            if((l1.val+l2.val+more)>=10){
                int num1 = (l1.val+l2.val+more)/10;
                int num2 = (l1.val+l2.val+more)%10;
                more = num1;
                l1.val = num2;
            }else{
                l1.val = l1.val+l2.val+more;
                more = 0;
            }
            pre = l1;
            l1=l1.next;
            l2=l2.next;
        }
        if(l1!=null){
            while(more!=0&&l1!=null){
                int num1 = (l1.val+more)/10;
                int num2 = (l1.val+more)%10;
                if(num1>0){
                    l1.val = num2;
                    more = num1;
                }else{
                    l1.val = num2;
                    more=0;
                }
                pre = l1;
                l1=l1.next;
            }
        }
        if(l2!=null){
            pre.next = l2;
            while(more!=0&&l2!=null){
                int num1 = (l2.val+more)/10;
                int num2 = (l2.val+more)%10;
                if(num1>0){
                    l2.val = num2;
                    more = num1;
                }else{
                    l2.val = num2;
                    more=0;
                }
                pre = l2;
                l2=l2.next;
            }
        }
        if(more>0){
            ListNode newNode = new ListNode(more);
            pre.next = newNode;
        }
        return result;
    }
}

执行结果:通过

显示详情

执行用时:2 ms, 在所有 Java 提交中击败了100.00%的用户

内存消耗:39.1 MB, 在所有 Java 提交中击败了17.85%的用户

 

总结:

典型的以时间换空间的一种做法。

最后

以上就是开放自行车为你收集整理的给定两个用链表表示的整数,每个节点包含一个数位。的全部内容,希望文章能够帮你解决给定两个用链表表示的整数,每个节点包含一个数位。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部