当前位置:网站首页>每日一题-两数相加-0711
每日一题-两数相加-0711
2022-08-05 05:17:00 【菜鸡程序媛】
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
解题思路:通过相加两个节点值的和,不断往后走,得到最终的值。需要注意的是,要判断temp是否不等于0,不等于0的时候要继续创建新的节点。
/** * 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) {
if(l1 == null && l2 == null)
return null;
if(l1 == null)
return l2;
if(l2 == null)
return l1;
ListNode head = new ListNode(-1);
ListNode res = head;
int temp = 0;
while(l1 != null || l2 != null){
int val1 = l1 != null ? l1.val : 0;
int val2 = l2 != null ? l2.val : 0;
int sum = val1 + val2 + temp;
res.next = new ListNode(sum % 10);
res = res.next;
temp = sum / 10;
if(l1 != null)
l1 = l1.next;
if(l2 != null)
l2 = l2.next;
}
// 这里要判断一下 否则会漏掉后面的节点
if(temp != 0)
res.next = new ListNode(temp);
return head.next;
}
}
边栏推荐
猜你喜欢
随机推荐
HuiFer 带你读懂 BeanFactory getBean 方法
网工必用神器:网络排查工具MTR
读论文 - Unpaired Portrait Drawing Generation via Asymmetric Cycle Mapping
电子产品量产工具(2)- 输入系统实现
MySQL
每日一题-二分法
LeetCode刷题之第746题
九、响应处理——内容协商底层原理
C语言查看大小端(纯代码)
将一句话的单词进行倒置(C语言纯代码)
十一、拦截器运行原理
读论文-Cycle GAN
C语言入门笔记 —— 初识
手把手教你搭建小程序
C语言程序死循环问题解析——变量被修改
栈的应用——力扣 20.有效的括号
【ts】typescript高阶:键值类型及type与interface区别
MaskDistill - Semantic segmentation without labeled data
七、请求处理——Map、Model类型参数处理原理
每日一题-下一个排列-0723









