算法编程(十七):移除链表元素

简介: 算法编程(十七):移除链表元素

写在前面


今天的这道题,是我们很熟悉的链表结构。

《移除链表元素》一题,主要就是针对链表来进行一些操作的题目。

对熟悉链表或者不太熟悉的链表的同学们有一定的帮助。

下面我们就一起来看一下吧。

image.png

题目解读


移除链表元素,从题目的描述来看,是要将链表中所有符合要求的值的链表对象删除。

并且不能打乱原有的链表顺序。

从示例中,我们可以看得出,最后的结果是要将某个链表对象移除后,然后将后续的链表再次拼接上。

那么如何实现呢。

其实操作链表无非就是使用循环遍历、或者递归的方式来处理。

如果是递归的话,代码的编写会简单一些。

如果是循环遍历的话,可能会涉及到中间值的问题。

大家可以自行选择一下,我这里也实现了一波,具体代码在下面。

代码实现


本次运行代码如下:

采用了循环遍历的方式来处理。

/**
 * 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 node = new ListNode(0);
        node.next = head;
        ListNode z = node;
        while (z.next != null) {
            if (z.next.val == val) {
                z.next = z.next.next;
            } else {
                z = z.next;
            }
        }
        return node.next;
    }
}

代码执行结果


今天的执行结果还是比较可以的,普遍的循环遍历比较快。

没有试递归的性能如何,大家可以自行试一下。

image.png

其他思路


除了这种循环遍历的方式,自然就是递归了。

通过递归也可以实现该功能。

总结


链表数据结构的操作,一般就是循环遍历、递归来操作,只要出现移除、添加节点的操作,还需要一个中间值来一并处理。


相关文章
|
1月前
【力扣】-- 移除链表元素
【力扣】-- 移除链表元素
35 1
|
1月前
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
41 3
|
1月前
|
算法
【❤️算法笔记❤️】-每日一刷-19、删除链表的倒数第 N个结点
【❤️算法笔记❤️】-每日一刷-19、删除链表的倒数第 N个结点
69 1
|
1月前
|
算法 索引
❤️算法笔记❤️-(每日一刷-141、环形链表)
❤️算法笔记❤️-(每日一刷-141、环形链表)
46 0
|
1月前
|
算法
【❤️算法笔记❤️】-(每日一刷-876、单链表的中点)
【❤️算法笔记❤️】-(每日一刷-876、单链表的中点)
44 0
|
1月前
|
算法
【❤️算法笔记❤️】-每日一刷-23、合并 K 个升序链表
【❤️算法笔记❤️】-每日一刷-23、合并 K 个升序链表
32 0
|
1月前
|
存储 算法
【❤️算法笔记❤️】-每日一刷-21、合并两个有序链表
【❤️算法笔记❤️】-每日一刷-21、合并两个有序链表
93 0
|
12天前
|
算法 Python
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果;贪心算法在每一步选择局部最优解,追求全局最优;动态规划通过保存子问题的解,避免重复计算,确保全局最优。这三种算法各具特色,适用于不同类型的问题,合理选择能显著提升编程效率。
29 2
|
21天前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习之单双链表精题详解(9)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
21天前
|
存储 Web App开发 算法
2024重生之回溯数据结构与算法系列学习之单双链表【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构之单双链表按位、值查找;[前后]插入;删除指定节点;求表长、静态链表等代码及具体思路详解步骤;举例说明、注意点及常见报错问题所对应的解决方法