两数相加力扣
Posted 一朵花花
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两数相加力扣相关的知识,希望对你有一定的参考价值。
题目: 在线OJ
思考分析:
首先,创建一个newHead,表示目标链表
我们可以看作两个链表长度一样,在短的链表末尾补0
创建变量 carry 记录进位值,遍历两个链表,逐位计算和 sum = num1 + num2 + carry
注意: 最后要判断 carry > 0 ? 若还有进位值,则要将其附加在链表结尾
代码实现:
public ListNode addTwoNumbers2(ListNode l1, ListNode l2) {
ListNode newHead = new ListNode(0);
ListNode tail = newHead;
int carry = 0;
int result = 0;
while (l1 != null || l2 != null) {
int num1 = l1 != null ? l1.val : 0;
int num2 = l2 != null ? l2.val : 0;
int sum = num1 + num2 + carry;
carry = sum / 10;
result = sum % 10;
tail.next = new ListNode(result);
tail = tail.next;
if (l1 != null) {
l1 = l1.next;
}
if (l2 != null) {
l2 = l2.next;
}
if(carry > 0){
tail.next = new ListNode(carry);
}
}
return newHead.next;
}
以上是关于两数相加力扣的主要内容,如果未能解决你的问题,请参考以下文章
SqlServer数据库要求按照两数相减结果的绝对值正序排列怎么写sql语句?