当前位置: 首页 > news >正文

【leetcode hot 100 2】两数相加

解法一:申请三个指针,分别指向l1、l2、new_l。先设置第一个节点;再l1、l2循环设置后续节点;若某一条链未结束,继续循环设置;若最后enter1(下一位是否进1)仍为真,则多了一位还要新加一位1。

/**
 * 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) {
        ListNode sum_list = new ListNode();
        ListNode p1 = l1.next, p2 = l2.next, ps = sum_list;
        int sum = l1.val+l2.val;
        boolean enter1 = sum>=10 ? true : false;
        
        // 先设置第一个节点
        sum_list.val = sum%10;
        sum_list.next = null;
        
        // 设置后续节点
        while(p1!=null && p2!=null){
            sum = enter1 ? p1.val+p2.val+1 : p1.val+p2.val;
            enter1 = false;
            if(sum >= 10){
                enter1 = true;
            }
            ListNode temp = new ListNode();
            temp.val = sum%10;
            temp.next = ps.next;
            ps.next = temp;
            ps = ps.next;
            p1 = p1.next;
            p2 = p2.next;
        }

        // 某一条链未结束
        p1 = p1!=null ? p1 : p2;
        while(p1!=null){
            sum = enter1 ? p1.val+1 : p1.val;
            enter1 = false;
            if(sum >= 10){
                enter1 = true;
            }
            ListNode temp = new ListNode();
            temp.val = sum%10;
            temp.next = ps.next;
            ps.next = temp;
            ps = ps.next;
            p1 = p1.next;
        }

        // 多了一位,还要进1
        if(enter1){
            ListNode temp = new ListNode();
            temp.val = 1;
            temp.next = ps.next;
            ps.next = temp;
        }
        return sum_list;
    }
}
http://www.dtcms.com/a/61308.html

相关文章:

  • Git 设置全局代理
  • 第3节:IP地址分类与子网划分实战指南
  • 『PostgreSQL』PGSQL备份与还原实操指南
  • MySQL的约束
  • 学习笔记12——并发编程之线程之间协作方式
  • rust语言match模式匹配涉及转移所有权Error Case
  • Java本地方法根据线上地址下载图片到本地然后返回本地可以访问的地址
  • 【氮化镓】开态GaN HEMTs中氧诱导Vth漂移的缺陷演化
  • 力扣:找到一个数字的 K 美丽值(C++)
  • 面试题之强缓存协商缓存
  • javascript-es6 (六)
  • 从机器学习到生成式AI狂潮:AWS的AI征程从未停息
  • 【实战ES】实战 Elasticsearch:快速上手与深度实践-7.2.2自动扩缩容策略(基于HPA)
  • 2025年总结zabbix手动部署过程!
  • 【Python爬虫】使用python脚本拉取网页指定小说章节
  • [250310] Mistral 发布世界领先的文档理解 API:Mistral OCR | 谷歌利用 AI 保护自然的三种新方式
  • 可视化图解算法:反转链表
  • 《面向长尾分布的甲骨文识别算法设计与实现 》开题报告
  • 力扣hot100二刷——哈希、双指针、滑动窗口
  • C/C++中使用CopyFile、CopyFileEx原理、用法、区别及分别在哪些场景使用
  • 【gcc编译以及Makefile与GDB调试】
  • python LLM工具包
  • JavaScript数据类型和内存空间
  • 20-智慧社区物业管理平台
  • Java【多线程】(3)单例模式与线程安全
  • 大模型如何从开始到编译出Engine
  • [免费]微信小程序(图书馆)自习室座位预约管理系统(SpringBoot后端+Vue管理端)(高级版)【论文+源码+SQL脚本】
  • 一个简化版的进程内通信库实现
  • 深入理解Java中的static关键字及其内存原理
  • 《云原生技术:DeepSeek分布式推理的效能倍增器》