Problem: 203. 移除链表元素
思路
基本操作
解题方法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DYyKPtst-1679061801928)(https://pic.leetcode.cn/1679053853-zscgot-%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20230317195018.jpg)]
复杂度
- 时间复杂度:
添加时间复杂度, 示例: O ( n ) O(n) O(n)
- 空间复杂度:
添加空间复杂度, 示例: O ( n ) O(n) O(n)
Code
/**
* 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 dummy = new ListNode(-1, head);
ListNode cur = dummy;
while (cur != null) {
if((cur.next != null) && (cur.next.val == val)) {
cur.next = cur.next.next;
}else{
cur = cur.next;
//用if的话,一定加else,因为执行删除之后是不应该前进一步的
}
// while((cur.next != null) && (cur.next.val == val)) {
// cur.next = cur.next.next;
// }
// cur = cur.next;
//或者用while。但是我这个目前还理解不了,请教哈哈哈哈哈哈
}
return dummy.next;
}
}