public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {
int carry = 0;
ListNode p, dummy = new ListNode(0);
p = dummy;
while (l1 != null || l2 != null || carry != 0) {
if (l1 != null) {
carry += l1.val;
l1 = l1.next;// 想前移动一个node
}
if (l2 != null) {
carry += l2.val;
l2 = l2.next;
}
p.next = new ListNode(carry%10);
carry /= 10;// 余数留做下一个节点的数据,参与计算
p = p.next;
}
return dummy.next; // 初始个val为0, 只作为占位
}
这里,p, dummp 都是指向同一个对象的引用,但是p, dummp 的值为什么不一样呢?