leetcode

今天做了1,2题。

1题是用hashmap降低时间复杂度的问题。

2.是个linklist的问题:

里面涉及两个问题,关于类的对象,变量的问题。类的对象是类的一个引用,可以改变对象的引用,但是类的值在类对象更改类的变量时会发生改变。

对于同一个类的两个引用A,B。A改变变量值会导致B的变量值也改变,但是若是改变了A的引用,即把引用C赋值给A,那么B不受影响。

public 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;
	        }
	        if (l2 != null) {
	            carry += l2.val;
	            l2 = l2.next;
	        }
	        p.next = new ListNode(carry%10);
	        carry /= 10;
	        p = p.next;
	    }
	    return dummy.next;
	}

public class Solution {
		int carry = 0;
		ListNode tmpa = new ListNode(12);
		ListNode ans = tmpa;
	    public ListNode  addTwoNumbers(ListNode l1, ListNode l2) {
	    	while(l1 != null||l2!=null||carry!=0){
	    		if(l1!=null){
	    			carry+=l1.val;
	    			l1=l1.next;
	    		}
	    		if(l2!=null){
	    			carry+=l2.val;
	    			l2=l2.next;
	    		}
	    		tmpa.next = new ListNode(carry%10);
	    		carry/=10;
	    		tmpa = tmpa.next;
	    	}
	    	return ans.next;
	    }
	}
而对于变量:

	public static void main(String[] arg){
		Tmp1 tmp1 = new Tmp1(1);
		Tmp1 tmp2 = tmp1;
		tmp1 = next;
		tmp2.a = 2;
//		System.out.println(tmp1.a);
		System.out.println(tmp2.a);
	}



你可能感兴趣的:(leetcode)