栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

LeetCode——2、两数相加

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LeetCode——2、两数相加

问题描述

2. 两数相加 - 力扣(LeetCode)https://leetcode.cn/problems/add-two-numbers/

Java实现 
package com.burns.leetcode.d2t;

public class Main {
    public static void main(String[] args) {
        ListNode l1 = new ListNode();
        initL1(l1);
        ListNode l2 = new ListNode();
        initL2(l2);
        ListNode listNode = addTwoNumbers(l1, l2);
        for (ListNode node = listNode; node != null; node = node.next) {

            System.out.print(node.val+" ");
        }
    }

    private static void initL2(ListNode l2) {
        l2.val = 9;


        ListNode l22 = new ListNode(9);
        l2.next = l22;

        ListNode l23 = new ListNode(9);
        l22.next = l23;

        ListNode l24 = new ListNode(9);
        l23.next = l24;
    }

    private static void initL1(ListNode l1) {
        l1.val = 9;


        ListNode l12 = new ListNode(9);
        l1.next = l12;

        ListNode l13 = new ListNode(9);
        l12.next = l13;

        ListNode l14 = new ListNode(9);
        l13.next = l14;

        ListNode l15 = new ListNode(9);
        l14.next = l15;

        ListNode l16 = new ListNode(9);
        l15.next = l16;

        ListNode l17 = new ListNode(9);
        l16.next = l17;

    }

    public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode l3 = new ListNode();
        ListNode point = l3;
        int l3Next = 0;
        while (!(l1 == null && l2 == null)) {
            int val1 = 0;
            if (l1 != null) {
                val1 = l1.val;
            }


            int val2 = 0;
            if (l2 != null) {
                val2 = l2.val;
            }

            int val3 = val1 + val2 + l3Next;
            ListNode l3NextNode = new ListNode();
            if (val3 > 9) {
                point.val = val3 % 10;
                l3Next = 1;
                l3NextNode.val = 1;

            } else {
                point.val = val3;
            }

            if (l1 != null && l1.next != null) {
                l1 = l1.next;
            } else {
                l1 = null;
            }

            if (l2 != null && l2.next != null) {
                l2 = l2.next;
            } else {
                l2 = null;
            }

            if (l1 != null || l2 != null) {
                point.next = l3NextNode;
                point = l3NextNode;
            }else {
                if(l3Next!=0){
                    point.next = l3NextNode;
                    point = l3NextNode;
                }
            }
        }
        return l3;

    }
}

class ListNode {
    int val;
    ListNode next;

    ListNode() {
    }

    ListNode(int val) {
        this.val = val;
    }

    ListNode(int val, ListNode next) {
        this.val = val;
        this.next = next;
    }
}
输出结果

8 9 9 9 0 0 0 1 

相关代码地址 

LeetCode-demo: 力扣,leetcode相关算法例子 (gitee.com)https://gitee.com/burns/LeetCode-demo

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/979956.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号