题解 | #牛群的能量值#
牛群的能量值
https://www.nowcoder.com/practice/fc49a20f47ac431981ef17aee6bd7d15
/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param l1 ListNode类 * @param l2 ListNode类 * @return ListNode类 */ ListNode* addEnergyValues(ListNode* l1, ListNode* l2) { // write code here int flag = 0; ListNode* a = l1; ListNode* b = l2; ListNode* res = l1; int alen = 0; int blen = 0; while(a != nullptr) { alen++; a =a->next; } while(b != nullptr) { blen++; b = b->next; } a = l1; b = l2; if(alen < blen) { swap(a, b); res = l2; } while (a->next != nullptr) { if(b != nullptr) { a->val = a->val + b->val + flag; if(a->val >= 10) { a->val = a->val % 10; flag = 1; a = a->next; b = b->next; continue; } a = a->next; b = b->next; flag = 0; }else { a->val = a->val + flag; if(a->val >= 10) { a->val = a->val % 10; flag = 1; a = a->next; continue; } a = a->next; flag = 0; } } if(b) a->val = a->val + b->val + flag; else a->val += flag; if(a->val >= 10) { a->val = a->val % 10; a->next = new ListNode(1); } return res; } };