leetcode2-两数相加
- 循环,每次相加都new一个新的节点
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode head = null, tail = null;
int sum = 0;
while(l1 != null || l2 != null){
int n1 = l1 != null ? l1.val : 0;
int n2 = l2 != null ? l2.val : 0;
sum = n1+n2+sum/10;
if(head == null){
head = tail = new ListNode(sum % 10);
}else{
tail.next = new ListNode(sum % 10);
tail = tail.next;
}
if(l1 != null) l1 = l1.next;
if(l2 != null) l2 = l2.next;
}
if(sum >= 10){
tail.next = new ListNode(1);
}
return head;
}
}
- 使用原有节点
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
int sum = 0;
ListNode head = null, tail = null;
while(l1 != null){
int n1 = l1.val;
int n2 = l2 != null ? l2.val : 0;
sum = n1+n2+sum/10;
l1.val = sum % 10;
if(head == null){
head = tail = l1;
}else{
tail.next = l1;
tail = tail.next;
}
l1 = l1.next;
if(l2 != null) l2 = l2.next;
}
while(l2 != null){
sum = l2.val + sum / 10;
l2.val = sum % 10;
if(head == null){
head = tail = l2;
break;
}else{
tail.next = l2;
tail = tail.next;
}
l2 = l2.next;
}
if(sum >= 10){
tail.next = new ListNode(1);
}
return head;
}
}
本文作者:xzh-yyds
本文链接:https://www.cnblogs.com/xzh-yyds/p/16586053.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步