我是靠谱客的博主 强健纸鹤,这篇文章主要介绍每日一题:Leetcode203 移除链表元素文章目录题目描述思路,现在分享给大家,希望可以做个参考。

文章目录

系列:链表专练
语言:java & go
题目来源:Leetcode203 移除链表元素
难度:简单
考点:头结点 && 虚拟头结点


思路和参考答案

  • 文章目录
  • 题目描述
  • 思路
    • java参考代码
    • go参考代码:


题目描述

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。
示例 1:
在这里插入图片描述

输入:head = [1,2,6,3,4,5,6], val = 6
输出:[1,2,3,4,5]

示例 2:

输入:head = [], val = 1
输出:[]

案例3:

输入:head = [7,7,7,7], val = 7
输出:[]

提示:

列表中的节点数目在范围 [0, 104] 内
1 <= Node.val <= 50
0 <= val <= 50

思路

两种思路;使用虚拟头节点和不使用虚拟头节点。两种方式的共同思路是:首先定义变量,然后通过遍历链表,如果该节点的值等于要删除的值,就使前一个节点的下一个节点等于该节点的下一个节点,从而实现链表中数据的删除。

java参考代码

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/** * 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 { //添加虚拟节点方式 时间复杂度O(n) 空间复杂度O(1) public ListNode removeElements(ListNode head, int val) { if(head == null){ return head; } ListNode dummy = new ListNode(-1,head); ListNode pre = dummy; ListNode cur = head; while(cur != null){ if(cur == val){ pre.next = cur.next; }else{ pre = cur; } cur = cur.next; } return dummy.next; } public ListNode removeElements(ListNode head, int val) { while(head != null && head.val == val){ head = head.next; } ListNode curr = head; while(curr!= null){ while(curr.next != null && curr.next.val ==val){ curr.next = curr.next.next; } curr = curr.next; } return head; } }

go参考代码:

go中需要自己实现结构体的定义。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
type ListNode struct { Val int Next *ListNode } func removeElements(head *ListNode,val int) *ListNode { dummyHead := &ListNode{} dummyHead.Next = head cur := dummyHead for cur!= nil && cur.Next != nil{ if cur.Next.Val == val{ cur.Next = cur.Next.Next }else{ cur = cur.Next } } return dummyHead.Next }

以上分析,希望对您有所帮助,您的支持是我最大的动力,感谢一键三连!!

最后

以上就是强健纸鹤最近收集整理的关于每日一题:Leetcode203 移除链表元素文章目录题目描述思路的全部内容,更多相关每日一题:Leetcode203内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(131)

评论列表共有 0 条评论

立即
投稿
返回
顶部