
LeetCode 02
开始的思路 单链表反转,以此遍历,进位,得到结果再反转。 写完发现。其实做了2次反转,可以直接计算,然后进位。
写完提交,re,原来还是用c的方法初始化结构体,替换之 WA,【5 5】输出 错误,最后一个进位如果溢出需要额外添加一个节点~~,修改再提交AC。
code:
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode *node = new ListNode(0);
node->val = 0;
node->next = NULL;
ListNode *current = node;
int bit = 0;
while (l1 || l2) {
int val = 0;
if(l1){
val += l1->val;
}
if (l2) {
val += l2->val;
}
val+=bit;
bit = val/10;
val %= 10;
ListNode *node = new ListNode(val);
current->next = node;
current = node;
if (l1) {
l1 = l1->next;
}
if (l2) {
l2 = l2->next;
}
}
if (bit) {
ListNode *node = new ListNode(1);
current->next = node;
current = node;
}
return node->next;
}
};




近期评论