問題:給定一個值,從鏈表中刪除該值的所有實例。 下面更多信息: JAVA爲什麼我不能刪除鏈接列表中的事件?
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode removeElements(ListNode head, int val) {
ListNode n = head; //1, 2, 6, 3, 4, 5, 6
while(n.next == null){
if(n.next.val == val){
n.next = n.next.next;
}
n = n.next;
if(n == null){break;}
}
return head;
}
}
自通的參考,應更新不應該嗎?
我想:
removeElements([1,2,6,3,4,5,6], 6)
但它並沒有刪除任何東西。那麼我做錯了什麼?
https://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-value –
監守它應該是同時(n.next!= NULL)你也不檢查頭是否包含你的價值。你錯過了很多檢查陳述。 –
'while(n.next == null){'如果您將長度爲1的列表傳遞給'removeElements',將會做出非常難看的事情,如果列表長度更長,則會做任何事情。 – Paul