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;
    }
}
相关推荐
cccc来财2 小时前
角点检测算法:Harris 和 FAST 方法
算法·计算机视觉·特征提取
风中月隐2 小时前
C语言中以坐标的方式图解“字母金字塔”的绘制
c语言·开发语言·算法·字母金子塔·坐标图解法
q_30238195562 小时前
告别“笨重”检测!VA-YOLO算法让疲劳驾驶识别更轻更快更准
算法·yolo
松涛和鸣2 小时前
DAY32 Linux Thread Programming
linux·运维·数据库·算法·list
林希_Rachel_傻希希2 小时前
手写Promise--教学版本
前端·javascript·面试
LYFlied2 小时前
【每日算法】LeetCode 234. 回文链表详解
算法·leetcode·链表
NeDon3 小时前
[OJ]数据结构:移除链表元素
c语言·数据结构·算法·链表
刃神太酷啦3 小时前
C++ list 容器全解析:从构造到模拟实现的深度探索----《Hello C++ Wrold!》(16)--(C/C++)
java·c语言·c++·qt·算法·leetcode·list
承渊政道3 小时前
一文彻底搞清楚链表算法实战大揭秘和双向链表实现
c语言·数据结构·算法·leetcode·链表·visual studio