1:add two numbers

125 阅读1分钟

题目链接:

点击这里

题解:

var addTwoNumbers = function add(l1, l2){
  let carray = 0;
  let list1 = l1; // eslint建议,不对入参进行修改
  let list2 = l2;
  let result = new ListNode(0);
  let res = result;
  while(list1 || list2 || carray){ // 根据最长的计算
        let val1 = list1?.val ?? 0;
        let val2 = list2?.val ?? 0;
        let currentTotal = val1 + val2 + carray;
        
        if(currentTotal > 9){
              carray = 1
              currentTotal = currentTotal - 10
        } else {
              carray = 0
        }
        // 制作result
        res.next = new ListNode(currentVal)
        res = res.next

        list1 = list1?.next
        list2 = list2?.next
  }
  return result.next
}

知识点:

  • ?. 操作符:判断问好前面是否为true,是true就取属性值,否则返回undefined
  • ?? 操作符:判断操作符前面是否是null/undefined, 是的话返回后面的值,否则返回前面值