LeetCode 题库2
题意
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807
源码
//链表
public class ListNode {
int val;
ListNode next;
ListNode(int x){val=x;}
}
//解决方法
public static ListNode addTwoNumbers(ListNode l1, ListNode l2){
ListNode l3 = null;
ListNode l32 = null;
Integer remainder = null;
while(l1!=null || l2!=null){
int num = (l1!=null && l2!=null) ? l1.val+l2.val : ((l2 ==null ) ? l1.val : l2.val);
l1=l1==null?null:l1.next;
l2=l2==null?null:l2.next;
if(remainder != null){
num+=1;
remainder = null;
}
if(num>=10 && num/10<2){
remainder=num%10;
num=num%10;
}
if(l3 == null){
l3 = new ListNode(num);
l32 = l3;
}else{
l32.next = new ListNode(num);
l32 = l32.next;
}
}
if(remainder != null){
l32.next = new ListNode(1);
l32 = l32.next;
}
return l3;
}
疑问:
l32=l3
是链表的地址域,这样赋值,能够达到指针赋值的效果?最终对l3
整个链表节点达到节点赋值的效果。