Add Two Numbers
nullptr指代指针字面量,在c++11中NULL被nullptr替代
思路:这里面需要注意头结点和头指针的使用,方便计算
/** * 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) { //first note ListNode dummy(-1); int paNum, pbNum, sum; int carry = 0; //first pointer ListNode *prev = &dummy; for(ListNode *pa=l1, *pb=l2; pa != nullptr || pb != nullptr; pa = (pa == nullptr) ? nullptr:pa->next, pb = (pb == nullptr) ? nullptr:pb->next) { paNum = (pa == nullptr) ? 0:pa->val; pbNum = (pb == nullptr) ? 0:pb->val; sum = paNum + pbNum + carry; carry = sum / 10; prev->next = new ListNode(sum % 10); prev = prev->next; } if(carry > 0) prev->next = new ListNode(carry); return dummy.next; } };

浙公网安备 33010602011771号