[算法题目|两数相加]

数组

两数相加

描述

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/add-two-numbers

思路

代码

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
   List<Integer> list1 = new ArrayList<>(100);
        list1.add(l1.val);
        while (true) {
            l1 = l1.next;
            if (l1 == null) {
                break;
            }
            list1.add(l1.val);
        }


        List<Integer> list2 = new ArrayList<>(100);
        list2.add(l2.val);
        while (true) {
            l2 = l2.next;
            if (l2 == null) {
                break;
            }
            list2.add(l2.val);
        }

        int bigLength = list1.size() > list2.size() ? list1.size() : list2.size();
        int step = 0;


        String resultStr = "";
        for (int length = 1; length <= bigLength; length++) {
            int one = length > list1.size() ? 0 : list1.get(length-1);
            int two = length > list2.size() ? 0 : list2.get(length-1);

            int mid = one + two + step;
            if (mid >= 10) {
                step = 1;
            } else {
                step = 0;
            }

            resultStr = resultStr + (step == 1 ? mid - 10 : mid);

            if (length == bigLength && step > 0) {
                resultStr = resultStr + "1";
            }

        }

        ListNode result = new ListNode(Integer.parseInt(resultStr.charAt(0) + ""));
        ListNode mid = result;
        int start = 1;
        while (start <= resultStr.length() - 1) {
            ListNode newOne = new ListNode(Integer.parseInt(resultStr.charAt(start) + ""));
            start++;
            mid.next = newOne;
            mid = mid.next;
        }

        return result;

    }
}

效率

image

posted @   异世界阿伟  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示