在对链表进行操作的时候,可以考虑添加虚拟头结点
1. 虚拟头结点
设置虚拟头结点,让头结点的next指向head
java">class Solution{public ListNode removeElements(ListNode head,int val){ListNode pre = new ListNode();pre.next = head;ListNode index = pre;while(index.next!=null){if(index.next.val==val){index.next = index.next.next; }else{index = index.next; } } return pre.next; }
}
2. 其他方法
处理头节点中连续的值等于 val 的情况。
遍历链表并通过修改指针跳过值等于 val 的节点。
返回修改后的链表头节点。
java">class Solution {public ListNode removeElements(ListNode head, int val) {while(head!=null && head.val==val){head=head.next;}if(head==null){return head;} ListNode pre = head;while(pre.next!=null){if(pre.next.val==val){pre.next = pre.next.next;}else{pre=pre.next;}}return head;}
}