题目链接:https://leetcode.com/problems/add-two-numbers/
题目描述:简单的链表题目;
Notes: 将javascript对象o赋值给变量a,变量a指向的是o的内存,即对a的修改就是对o的修改。
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} l1
* @param {ListNode} l2
* @return {ListNode}
*/
function listLen(list){ //判断链表长度
var len=0;
while(list!=null){
len++;
list=list.next;
}
return len;
}
var addTwoNumbers = function(l1, l2) {
let len1=listLen(l1);
let len2=listLen(l2);
if(len2>len1){
let tmp=l1;
l1=l2;
l2=tmp;
}
let l3=l1;//暂存l1链表头
while(l2!=null){
let add=l1.val+l2.val;
let carry=parseInt(add/10);
add=add%10;
l1.val=add;//做加法
let tmpList=l1;
while(carry>0){//进位
if(tmpList.next==null){tmpList.next=new ListNode(0);}
tmpList=tmpList.next;
let add2=tmpList.val+carry;
carry=parseInt(add2/10);
add2=add2%10;
tmpList.val=add2;
}
l1=l1.next;
l2=l2.next;
}
return l3;
};