【链表】- 两数相加

1. 对应力扣题目连接

2. 实现案例代码

java 复制代码
public class AddingTwoNumbers {
    public static void main(String[] args) {

        // 示例用例 1
        ListNode l1 = new ListNode(2);
        l1.next = new ListNode(4);
        l1.next.next = new ListNode(5);

        ListNode l2 = new ListNode(5);
        l2.next = new ListNode(6);
        l2.next.next = new ListNode(4);

        ListNode s = addTwoNumbersNew(l1, l2);
        soutListNode(s);

    }

    public static ListNode addTwoNumbersNew(ListNode l1, ListNode l2) {
        ListNode dummy = new ListNode(0);
        ListNode current = dummy;
        // 用于表示进位
        int carry = 0;

        while (l1 != null || l2 != null || carry != 0) {
            int sum = carry;
            if (l1 != null) {
                sum += l1.val;
                l1 = l1.next;
            }
            if (l2 != null) {
                sum += l2.val;
                l2 = l2.next;
            }

            carry = sum / 10;
            current.next = new ListNode(sum % 10);
            current = current.next;
        }

        return dummy.next;
    }
    
    public static void soutListNode(ListNode l1) {
        if (l1 == null) {
            return;
        }
        System.out.println(l1.val);
        soutListNode(l1.next);
    }
}

/**
 * 节点类
 */
class ListNode {
    int val;
    ListNode next;

    ListNode() {
    }

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

    ListNode(int val, ListNode next) {
        this.val = val;
        this.next = next;
    }
}
相关推荐
ᐇ9592 分钟前
Java LinkedList集合全面解析:双向链表的艺术与实战
java·开发语言·链表
luyun02020213 分钟前
Windows 11操作更丝滑,绝了
java·运维·figma
码银15 分钟前
【数据结构】顺序表
java·开发语言·数据结构
Boop_wu23 分钟前
[Java EE] 计算机基础
java·服务器·前端
橘子海全栈攻城狮30 分钟前
【源码+文档+调试讲解】基于Spring Boot的考务管理系统设计与实现 085
java·spring boot·后端·spring
神仙别闹32 分钟前
基于QT(C++) 实现哈夫曼压缩(多线程)
java·c++·qt
百锦再1 小时前
第12章 测试编写
android·java·开发语言·python·rust·go·erlang
C2H5OH6661 小时前
Netty详解-02
java·websocket·网络协议·tcp/ip·tomcat·netty·nio
小张成长计划..2 小时前
【C++】List容器的理解和使用(超详细)
数据结构·list