LeetCode T2 两数相加

开始做题了!

简单的模拟题 复习java基础

链表

要有两个引用对象,起到指针的作用,指向链表的head和当前所在位置cur。

Java中的对象和引用

Listnode pre = new Listnode();

new Listnode()在堆空间里创建了一个Listnode对象。

Listnode pre 创建了一个引用变量,储存在堆栈里。

同一个对象被多个引用变量引用,共同影响这个对象本身。

代码

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {

        ListNode head = new ListNode();
        ListNode cur = head;
        int carry=0;
        while(l1!= null || l2!=null || carry!=0)
        {
            int n1 = l1 == null ? 0 : l1.val;
            int n2 = l2 == null ? 0 : l2.val;
            int temp = n1+n2+carry;

            cur.next = new ListNode(temp % 10);
            carry= temp / 10;
            cur=cur.next;
            if (l1!=null)
                l1=l1.next;
            if (l2!=null)
                l2=l2.next;

        }
        head=head.next;
        return head;
    }
}