摘要:链表与递归第题题目删除链表中等于给定值的所有节点。示例输入输出不使用虚拟头节点链表不为空,并且头节点就是要删除的元素所有元素都是要删除的元素,并且在上面已经删完现在的链表头节点不是要删除的元素删除不删除使用虚拟头节点虚拟头节点递归
链表与递归 LeetCode第203题
</>复制代码
题目:
删除链表中等于给定值 val 的所有节点。
示例:
输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5
1.不使用虚拟头节点
</>复制代码
public class Solution {
public ListNode removeElements(ListNode head, int val) {
// 链表不为空,并且头节点就是要删除的元素
while (head != null && head.val == val) {
ListNode delNode = head;
head = head.next;
delNode.next = null;
}
if (head == null) {
// 所有元素都是要删除的元素,并且在上面已经删完
return head;
} else {
// 现在的链表头节点不是要删除的元素
ListNode prev = head;
while (prev.next != null) {
if (prev.next.val == val) { // 删除
ListNode delNode = prev.next;
prev.next = delNode.next;
delNode.next = null;
} else { // 不删除
prev = prev.next;
}
}
return head;
}
}
}
2.使用虚拟头节点
</>复制代码
public class Solution2 {
public ListNode removeElements(ListNode head, int val) {
// 虚拟头节点
ListNode dummyHead = new ListNode(0);
dummyHead.next = head;
ListNode prev = dummyHead;
while (prev.next != null) {
if (prev.next.val == val) {
ListNode delNode = prev.next;
prev.next = delNode.next;
delNode.next = null;
} else {
prev = prev.next;
}
}
return dummyHead.next;
}
}
3.递归
</>复制代码
public class Solution3 {
public ListNode removeElements(ListNode head, int val) {
if (head == null) {
return head;
}
head.next = removeElements(head.next, val);
return head.val == val ? head.next : head;
}
}
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/77060.html
摘要:链表与递归已经从底层完整实现了一个单链表这样的数据结构,并且也依托链表这样的数据结构实现了栈和队列,在实现队列的时候对链表进行了一些改进。计算这个区间内的所有数字之和。 showImg(https://segmentfault.com/img/remote/1460000018597053?w=1832&h=9943); 前言 【从蛋壳到满天飞】JAVA 数据结构解析和算法实现,全部文...
摘要:链表与递归已经从底层完整实现了一个单链表这样的数据结构,并且也依托链表这样的数据结构实现了栈和队列,在实现队列的时候对链表进行了一些改进。计算这个区间内的所有数字之和。 showImg(https://segmentfault.com/img/remote/1460000018597053?w=1832&h=9943); 前言 【从蛋壳到满天飞】JAVA 数据结构解析和算法实现,全部文...
摘要:双向链表双向链表作为在日常开发中最常用的数据结构之一,应用十分广泛,在诸多著名开源项目中如的结构,的中均是核心实现。 双向链表 双向链表作为在日常开发中最常用的数据结构之一,应用十分广泛,在诸多著名开源项目中如redis的list结构, groupcache的lru中均是核心实现。在设计此类数据集合的时候,外面看上去链表似乎与数组相似,但链表是一个非连续性内存的存储方案,提供了高效的节...
阅读 3595·2021-09-09 11:39
阅读 1350·2021-09-09 09:33
阅读 1214·2019-08-30 15:43
阅读 629·2019-08-29 14:08
阅读 1807·2019-08-26 13:49
阅读 2487·2019-08-26 10:09
阅读 1622·2019-08-23 17:13
阅读 2370·2019-08-23 12:57
极致性价比!云服务器续费无忧!
Tesla A100/A800、Tesla V100S等多种GPU云主机特惠2折起,不限台数,续费同价。
NVIDIA RTX 40系,高性价比推理显卡,满足AI应用场景需要。
乌兰察布+上海青浦,满足东推西训AI场景需要