题解 | #牛群的能量值#
牛群的能量值
https://www.nowcoder.com/practice/fc49a20f47ac431981ef17aee6bd7d15
解题思路
- 建立一个进位变量,一个新的链表;
- 当l1或l2或有进位的情况下进行循环:
- 计算当前对应位数的和;
- 更新进位变量,并为当前结果创建新的节点接入到新的链表中;
- 移动l1和l2的指针。
- 返回结果。
代码
/**
* 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) {
int flag = 0;
ListNode* dummy = new ListNode(0);
ListNode* cur = dummy;
while(l1 || l2 || flag)
{
int tmp = (l1?l1->val:0)+(l2?l2->val:0)+flag;
flag = tmp / 10;
cur->next = new ListNode(tmp%10);
cur = cur->next;
if(l1)
{
l1 = l1->next;
}
if(l2)
{
l2 = l2->next;
}
}
return dummy->next;
}
};
复杂度
- 时间复杂度:
;
- 空间复杂度:
。