日常:JavaScript解leetcode练习(2.两数相加)

180 阅读1分钟

本人算法小白,希望各位大牛给予指导

2020.3.24

今天开始刷leetcode题

坚信付出努力就会有回报

js里似乎没有链表所以 emmmm

/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} l1
 * @param {ListNode} l2
 * @return {ListNode}
 */
function ListNode(val) {
     this.val = val;
     this.next = null;
}
var addTwoNumbers = function(l1, l2) {
    let l3 = new ListNode('l3')
  let l4 = l3
  let sum = 0
  let upgrade = 0
  while(l1 || l2){
    let n1 = l1?l1.val:0
    let n2 = l2?l2.val:0
    sum = n1 + n2 + upgrade
    l4.next = new ListNode(sum%10)
    l4 = l4.next
    if(sum>=10){
        upgrade = 1
    }else{
        upgrade = 0
    }
    
    if(l1){
      l1 = l1.next
    }
    if(l2){
      l2 = l2.next
    }
  }
  if( upgrade > 0 ) l4.next = new ListNode(1)
  return l3.next
};