题目
删除链表中等于给定值 val 的所有元素。
示例
给定: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6
返回: 1 --> 2 --> 3 --> 4 --> 5
分析
1 第一道链表结构的题
2 两种思路 1 递归的方式来做
2 创造一个结点,while循环的方式来做
3 因为用递归的话会额外的占用o(n)的空间复杂度,方法2更好一些
代码
public ListNode removeElements(ListNode head, int val) {
ListNode dummy = new ListNode(0);
dummy.next = head;
head = dummy;
while(head.next != null){
if(head.next.val == val){
head.next = head.next.next;
}else{
head = head.next;
}
}
return dummy.next;
// if(head == null) return null;
// head.next = removeElements(head.next, val);
// return head.val == val ? head.next : head;
}