力扣203移除元素
题目来源:
力扣203
题目描述:
非常简单的一道题,主要强调两点
- 链表删除要记录删除位置的前驱节点 头节点没有前驱 因此直接head=head.next
- 为了保持与后两种一致,加上虚拟节点,下一节点指向头节点
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode removeElements(ListNode head, int val) {
//来一个虚节点 删除分首中尾三种 首的删除不需要前一个节点
//为了与后两种统一 增加虚节点
ListNode dummynode=new ListNode(0);
dummynode.next=head;
ListNode testnode=dummynode;
while(testnode.next!=null){
if(testnode.next.val==val){
testnode.next=testnode.next.next;
}else{
testnode=testnode.next;
}
}
return dummynode.next;
}
}