问题:删除链表中指定元素的节点。
思路:问题开始看比较简单,只需要在遍历链表的同时比较节点的值与给定的值是否相同,然后做出判断是否删除即 可。但是我们知道在删除链表元素的时候要找出其前一个节点,如果链表的第一个节点就是需要被删除的节点 呢?所以必须要跳过这样的节点。
public class Solution {
public ListNode removeElements(ListNode head, int val) {
if (head == null) {
return null;
}
while(head!=null&&head.val==val){
head=head.next;
}
ListNode p=head;
while(p!=null &&p.next!=null){
if (p.next.val==val){
p.next=p.next.next;
}else{
p=p.next;
}
}
return head;
}
}