老师您好,我有一点看不明白,想问下ListNode prev = dummyHead 这句赋值语句是怎么操作链表的? 因为最后返回的是dummyHead.next,而dummyHead.next = head, 但是所有的检查删除都是在prev上面操作的,最后是怎样把操作结果体现在dummyHead的呢?
这是我的代码,最终判断是错误的,但是我觉得逻辑并没有什么差别,请问问题是出在那句语句吗?谢谢老师
class Solution {
public ListNode removeElements(ListNode head, int val) {
ListNode dummyHead = new ListNode(0);
dummyHead.next = head;
while(dummyHead.next != null){
if(dummyHead.next.val == val)
dummyHead.next = dummyHead.next.next;
else
dummyHead = dummyHead.next;
}
return dummyHead;
}
}