class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode *head = nullptr, *tail = nullptr;
int carry = 0;
while (l1 || l2) {
int n1 = l1 ? l1->val: 0;
int n2 = l2 ? l2->val: 0;
int sum = n1 + n2 + carry;
if (head == nullptr) {
head = tail = new ListNode(sum % 10);
} else {
tail->next = new ListNode(sum % 10);
tail = tail->next;
}
carry = sum / 10; // 1
if (l1) {
l1 = l1->next;
}
if (l2) {
l2 = l2->next;
}
}
if (carry > 0) {
tail->next = new ListNode(carry);
}
return head;
}
};
LeetCode_C++_2_链表_中
最新推荐文章于 2024-10-31 20:10:41 发布
该代码实现了一个函数,用于将两个表示数字的链表相加。每个链表节点包含一个数字位,函数通过迭代计算节点值的和,并处理进位。最后,如果仍有进位,则在结果链表末尾添加新节点。
摘要由CSDN通过智能技术生成