思路分析
给的是一个结构体,居然还有构造函数,C++这个特性我都快忘了。赶紧去查了查。
结构体实例、共用体实例和类实例的初始化方法完全相同,二者都可以应用于继承层次中。不同点是结构体、共用体默认成员为public,而类默认成员是private型的。
没什么特别的,链表实现加法,注意进位。倒是好久没用指针,在语法上多花点时间。
代码实现
/*** 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* head = new ListNode(0);ListNode* p = head;int a;int b;int c = 0;// 有一个不为空就继续做while ((l1 != NULL) || (l2 != NULL)){if (l1 != NULL){a = l1->val;l1 = l1->next;}else{a = 0;}if (l2 != NULL){b = l2->val;l2 = l2->next;}else{b = 0;}int sum = a + b + c;c = sum / 10;sum %= 10;ListNode *tmp = new ListNode(sum);p->next = tmp;p = p->next;}// 最高位是否需要进位if (c > 0) {ListNode *tmp=new ListNode(c);p->next = tmp;p = p->next;}return head->next;}};
