02
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode resultList = new ListNode();
ListNode current = resultList;
ListNode p1 = l1;
ListNode p2 = l2;
boolean carry = false;
while (p1 != null && p2 != null) {
int sumVal = p1.val + p2.val;
if (carry) {
sumVal = sumVal + 1;
}
if (sumVal >= 10) {
carry = true;
} else {
carry = false;
}
current.next = new ListNode();
current = current.next;
current.val = sumVal % 10;
p1 = p1.next;
p2 = p2.next;
}
while (p1 != null) {
int sumVal = p1.val;
if (carry) {
sumVal = sumVal + 1;
}
if (sumVal >= 10) {
carry = true;
} else {
carry = false;
}
current.next = new ListNode();
current = current.next;
current.val = sumVal % 10;
p1 = p1.next;
}
while (p2 != null) {
int sumVal = p2.val;
if (carry) {
sumVal = sumVal + 1;
}
if (sumVal >= 10) {
carry = true;
} else {
carry = false;
}
current.next = new ListNode();
current = current.next;
current.val = sumVal % 10;
p2 = p2.next;
}
if (carry) {
current.next = new ListNode();
current = current.next;
current.val = 1;
}
return resultList.next;
}
利用三元运算符?:,并且null补0,让代码更简洁可读
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode pre = new ListNode(0);
ListNode cur = pre;
int carry = 0;
while (l1 != null || l2 != null) {
int v1 = l1 == null ? 0 : l1.val;
int v2 = l2 == null ? 0 : l2.val;
int sum = v1 + v2 + carry;
carry = sum / 10;
int nextVal = sum % 10;
cur.next = new ListNode(nextVal);
cur = cur.next;
l1 = l1 == null ? null : l1.next;
l2 = l2 == null ? null : l2.next;
}
if (carry > 0) {
cur.next = new ListNode(carry);
}
return pre.next;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗