day35(12.16)——leetcode面试经典150

2. 两数相加

2. 两数相加

这道题唯一的难点就是cur如何往后移

题目:

题解:

java 复制代码
/**
 * 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 list  = new ListNode(0);
        ListNode cur = list;
        int y = 0;
        while(l1 != null && l2 != null) {
            cur.next = new ListNode((l1.val + l2.val + y) % 10);
            y = (l1.val + l2.val + y) / 10;  
            l1 = l1.next;
            l2 = l2.next;
            cur = cur.next;
        }
        while(l1 != null) {
            cur.next = new ListNode((l1.val + y) % 10);
            y = (l1.val + y) / 10; 
            l1 = l1.next;
            cur = cur.next;
        }
        while(l2 != null) {
            cur.next = new ListNode((l2.val + y) % 10);
            y = (l2.val + y) / 10;
            l2 = l2.next;
            cur = cur.next;
        }
        if(y != 0) {
            cur.next = new ListNode(y);
            cur = cur.next;
        }
        //当前头是虚拟头,所以真正的链表是next之后的
        return list.next;
    }
}
相关推荐
逆境不可逃20 小时前
【LeetCode 912】排序数组——随机化快速排序详解
数据结构·算法·排序算法
Coder-magician21 小时前
《代码随想录》刷题打卡day31:动态规划-背包问题part02
算法·动态规划
薛定e的猫咪21 小时前
从因果视角解决多智能体协作:细读 SCIC 算法
算法
Forever Nore21 小时前
LeetCode 14 最长公共前缀 - 纵向扫描
linux·服务器·leetcode
c2385621 小时前
《算法武林谱:四大排序神功与二分寻宝术全解》
数据结构·算法·排序算法
圣保罗的大教堂21 小时前
leetcode 3090. 每个字符最多出现两次的最长子字符串 简单
leetcode
一米阳光866121 小时前
软考(中级)软件设计师核心笔记(9)算法——时间复杂度与空间复杂度、查找算法、排序算法
笔记·算法·职场发展·软考·软件设计师·中级职称
Mem0rin21 小时前
二分查找:左右边界
数据结构·算法
艾莉丝努力练剑21 小时前
【QT:解决问题】Qt5Core.dll:无法定位程序输入点
java·开发语言·qt·学习·面试
大明者省1 天前
WSL2 Ubuntu22.04 GPU训练环境配置指南
人工智能·算法·计算机视觉