2130. 链表最大孪生和
分析
- 遍历链表:
- 第一次遍历链表计算长度
n
- 在第一次遍历的同时,将前
n/2
个节点的值压入栈中
- 第一次遍历链表计算长度
- 计算孪生和:
- 从第
n/2
个节点开始,第二次遍历链表 - 弹出栈顶元素,与当前节点值相加计算孪生和,更新最大值
- 从第
- 返回结果:
- 遍历完成后,返回最大孪生和
时间复杂度
- 计算长度:遍历链表一次,时间复杂度为
O(n)
- 计算孪生和:再次遍历后半部分链表,时间复杂度为
O(n/2)
总体时间复杂度为 O(n)
空间复杂度
空间复杂度为 O(n)
C++代码
|
|