在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/人工智能  HTML/ JavaScript鏈表指針問題?

JavaScript鏈表指針問題?

源自一個問題:
輸入兩個單調(diào)遞增的鏈表,輸出兩個鏈表合成后的鏈表,當(dāng)然我們需要合成后的鏈表滿足單調(diào)不減規(guī)則。
解決代碼:

/*function ListNode(x){
????this.val = x;
????this.next = null;
}*/
function Merge(pHead1, pHead2){
????if(!pHead1){
????????return pHead2 ? pHead2 : null
????} else if(!pHead2){
????????return pHead1;
????}
????// debugger;
????var curr1 = pHead1;
????var curr2 = pHead2;
????var result = new ListNode(-1);
????var curr = result;
????while(curr1 && curr2){
????????if(curr1.val < curr2.val){
????????????curr.next = curr1;
????????????curr1 = curr1.next;
????????} else{
????????????curr.next = curr2;
????????????curr2 = curr2.next;
????????}
????????curr = curr.next;
????}
????if(curr1){
????????curr.next = curr1;
????}
????if(curr2){
????????curr.next = curr2;
????}
????//防止內(nèi)存泄露
????curr = result.next;
????result.next = null;
????result = curr;
????curr = curr1 = curr2 = null;
????return result;
}

這個防止內(nèi)存泄露的代碼沒有看懂
curr = result.next之后curr是指向了result.next的地址吧,還是復(fù)制了一份?
引用類型因該是指向地址吧?
那么result.next = null之后curr也變成null了吧??
為什么還可以result=curr,最后返回result

回答
編輯回答
女流氓

如果 result.next 指向一個對象
執(zhí)行 curr = result.next;
這時 curr 和 result.next 將指向同一個對象
執(zhí)行 result.next = null;
將 result.next 指向null,但對象不會被垃圾回收,因為還有一個curr變量指向該對象
執(zhí)行 result = curr;
將 result 指向?qū)ο蟆?br>你可以學(xué)習(xí)下垃圾回收與對象引用

2017年5月1日 10:59