Leetcode题目编号:2
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode* res = new ListNode(-1);
ListNode* head = res; //返回链表的头
int inHeight = 0; //进位
ListNode* L1Cur = l1;
ListNode* L2Cur = l2;
while(L1Cur != NULL || L2Cur != NULL || inHeight !=0){
int nums1 = 0;
int nums2 = 0;
if(L1Cur!= NULL){
nums1 = L1Cur->val;
L1Cur = L1Cur->next;
}
if(L2Cur!= NULL){
nums2 = L2Cur->val;
L2Cur = L2Cur->next;
}
int numsNew = nums1+nums2+inHeight;
inHeight = numsNew /10;
numsNew = numsNew % 10;
ListNode* sumNode = new ListNode(numsNew);
res->next = sumNode;
res = res->next;
}
return head->next;
}
};
注意:
1 维护好进位
2 维护好循环变量