问题:给定一个值,从链表中删除该值的所有实例。 下面更多信息: 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