例题:
leetcode 445. 两数相加 II
给定两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。
你可以假设除了数字 0 之外,这两个数字都不会以零开头。
进阶:
如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。
示例:
输入: (7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)
输出: 7 -> 8 -> 0 -> 7
1. 使用C++引用传递,函数调用过程中修改的都是同一个地址空间中保存到carry值(进位值)
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
int len1 = get_length(l1), len2 = get_length(l2);
int len = max(len1, len2);
if(len1 != len2){
ListNode* head = len1 < len2 ? l1 : l2;
for(int i = 0; i < len - min(len1, len2); i ++){
ListNo