/** * 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 *cur = res; int carry = 0; while (l1 || l2) { int n1 = l1 ? l1->val : 0; int n2 = l2 ? l2->val : 0; int sum = n1 + n2 + carry; carry = sum / 10; cur->next = new ListNode(sum % 10); cur = cur->next; if (l1) l1 = l1->next; if (l2) l2 = l2->next; } if (carry) cur->next = new ListNode(1); return res->next; }};
我可能是个傻子,本来都给我逆序写好了,我偏要列表反转一下,mdzz
既然写了也要贴出来
ListNode* reverseList(ListNode *l){ ListNode *res = l; ListNode *head = l->next; ListNode *cur = head; res->next = NULL; while(head){ cur = head->next; head->next = res; res = head; head = cur; } return res; }
——