热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LeetCode002两数相加

2.两数相加题目描述给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。

2.两数相加

题目描述


给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

请你将两个数相加,并以相同形式返回一个表示和的链表。

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。



思路


两条链表直接原地相加,顺便检查是否要进位。



代码

public static ListNode02 addTwoNumbers(ListNode02 l1, ListNode02 l2){
ListNode02 head = l1;
while (l1.next != null && l2.next != null){
l1.val += l2.val;
//进位判断
if (l1.val>= 10){
l1.val %= 10;
l1.next.val++;
}
l1 = l1.next;
l2 = l2.next;
}
//最后一个数
l1.val += l2.val;
if (l1.next == null){
l1.next = l2.next;
}
//直接从末尾开始
ListNode02 ptr = l1;
while (ptr != null){
if (ptr.val>=10){
ptr.val %= 10;
if (ptr.next != null){
ptr.next.val++;
}else{
ptr.next = new ListNode02(1);
break;
}
}
ptr = ptr.next;
}
return head;
}




推荐阅读
author-avatar
elsister789_4592
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有