- 移除链表元素
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。
方法一:建立虚拟头结点,所有节点统一处理
注意:
1、设立当前节点和前一个节点 两个节点循环,不容易出现空指针错误。
2、删除和不删除的情况,指针后移要区别处理,注意不同点。
3、返回的是 虚拟头结点的next,而不是之前的head
方法二:头结点删除单独处理
注意:
链表结点定义
public class ListNode(){
int val;
ListNode next;
ListNode(){}
ListNode(int val){
this.val = val;
}
ListNode(int val,ListNode next){
this.next = next;
this.val = val;
}
}
注意:善于使用虚拟头结点,可以避免很多空指针异常。和混乱。