文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
两数相加
解题思路
递归。
代码实现
/**
* Definition for singly-linked list.
* class ListNode {
* val: number
* next: ListNode | null
* constructor(val?: number, next?: ListNode | null) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
* }
*/
const dfs = (
l1: ListNode | null,
l2: ListNode | null,
carry: number = 0
): ListNode => {
if (!l1 && !l2 && carry === 0) {
return null;
}
const value1 = l1?.val ?? 0;
const value2 = l2?.val ?? 0;
const sum = value1 + value2 + carry;
const node = new ListNode(sum % 10);
node.next = dfs(l1?.next ?? null, l2?.next ?? null, Math.floor(sum / 10));
return node;
};
const addTwoNumbers = (
l1: ListNode | null,
l2: ListNode | null
): ListNode | null => {
return dfs(l1, l2, 0);
};
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论