代码随想录算法训练营第三天 | 链表 206. 反转链表 707. 设计链表 203. 移除链表元素

简介: 代码随想录算法训练营第三天 | 链表 206. 反转链表 707. 设计链表 203. 移除链表元素

一、前言

今天是代码训练营第三天,链表相关,LeetCode题分别是  206. 反转链表 707. 设计链表 203. 移除链表元素

二、 206. 反转链表

题目描述

网络异常,图片无法展示
|

网络异常,图片无法展示
|

思路分析

这个比较简单, 搞个新链表,一个中间节点然后来回切换就可以了

代码展示

class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode result = null;
        ListNode cur = head;
        ListNode temp = null;
        while(cur != null){
            temp = cur.next;
            cur.next = result;
            result = cur;
            cur = temp;
        }
        return  result;
    }
}
复制代码

提交结果

网络异常,图片无法展示
|

三、 707. 设计链表

题目描述

网络异常,图片无法展示
|

思路分析

在这道题上面卡了很久,之前刷的时候落下了这道题,只有一点思路做起来就很难

其中添加首尾节点的方法都可以使用指定下标添加方法复用来做

主要需要注意的就是理解每个方法的作用,同时计算好边界

代码展示

public class MyLinkedList {
    int size;
    ListNode node;
    public MyLinkedList() {
        size = 0;
        node = new ListNode(0);
    }
    public int get(int index) {
        if (index < 0 || index >= size){
            return -1;
        }
        ListNode root = node;
        for (int i = 0; i <= index; i++) {
            root = root.next;
        }
        return root.val;
    }
    public void addAtHead(int val) {
        addAtIndex(0, val);
    }
    public void addAtTail(int val) {
        addAtIndex(size, val);
    }
    public void addAtIndex(int index, int val) {
        if (index > size){
            return;
        }
        if (index < 0){
            index = 0;
        }
        ListNode temp = node;
        for (int i = 0; i < index; i++) {
            temp = temp.next;
        }
        ListNode root = new ListNode(val);
        root.next = temp.next;
        temp.next = root;
        size++;
    }
    public void deleteAtIndex(int index) {
        if (index < 0 || index >= size){
            return;
        }
        size--;
        if(index == 0){
            node = node.next;
            return;
        }
        ListNode temp = node;
        for (int i = 0; i < index; i++) {
            temp = temp.next;
        }
        temp.next = temp.next.next;
    }
    @Override
    public String toString() {
        return "MyLinkedList{" +
                "size=" + size +
                ", node=" + node +
                '}';
    }
}
复制代码

提交结果

网络异常,图片无法展示
|

四、 203. 移除链表元素

题目描述

网络异常,图片无法展示
|

思路分析

也是使用中间节点来做的

代码展示

class Solution {
    public ListNode removeElements(ListNode head, int val) {
        if (head == null){
            return null;
        }
        ListNode temp = new ListNode(-1, head);
        ListNode pre = temp;
        ListNode cur = head;
        while(cur != null){
            if (cur.val == val){
                pre.next = cur.next;
            }else{
                pre = cur;
            }
            cur = cur.next;
        }
        return temp.next;
    }
}
复制代码

提交结果

网络异常,图片无法展示
|

五、总结

今天有点累,思路分析都有点简略,有代码看起来比较难的可以去看代码随想录的网站或者直接评论留言,每天摸鱼的我肯定可以非常及时的回复



目录
相关文章
|
18天前
|
机器学习/深度学习 算法 新能源
【优化调度】基于matlab粒子群算法求解水火电经济调度优化问题研究(Matlab代码实现)
【优化调度】基于matlab粒子群算法求解水火电经济调度优化问题研究(Matlab代码实现)
|
18天前
|
传感器 并行计算 算法
【无人机编队】基于非支配排序遗传算法II NSGA-II高效可行的无人机离线集群仿真研究(Matlab代码实现)
【无人机编队】基于非支配排序遗传算法II NSGA-II高效可行的无人机离线集群仿真研究(Matlab代码实现)
|
18天前
|
存储 算法 安全
【无人机】基于灰狼优化算法的无人机路径规划问题研究(Matlab代码实现)
【无人机】基于灰狼优化算法的无人机路径规划问题研究(Matlab代码实现)
111 0
|
18天前
|
机器学习/深度学习 传感器 数据采集
【23年新算法】基于鱼鹰算法OOA-Transformer-BiLSTM多特征分类预测附Matlab代码 (多输入单输出)(Matlab代码实现)
【23年新算法】基于鱼鹰算法OOA-Transformer-BiLSTM多特征分类预测附Matlab代码 (多输入单输出)(Matlab代码实现)
|
23天前
|
机器学习/深度学习 算法 数据挖掘
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
|
23天前
|
机器学习/深度学习 算法 安全
计及需求响应的粒子群算法求解风能、光伏、柴油机、储能容量优化配置(Matlab代码实现)
计及需求响应的粒子群算法求解风能、光伏、柴油机、储能容量优化配置(Matlab代码实现)
|
26天前
|
算法
离散粒子群算法(DPSO)的原理与MATLAB实现
离散粒子群算法(DPSO)的原理与MATLAB实现
68 0
|
19天前
|
算法 机器人 定位技术
基于机器视觉和Dijkstra算法的平面建筑群地图路线规划matlab仿真
本程序基于机器视觉与Dijkstra算法,实现平面建筑群地图的路径规划。通过MATLAB 2022A读取地图图像,识别障碍物并进行路径搜索,支持鼠标选择起点与终点,最终显示最优路径及长度,适用于智能导航与机器人路径规划场景。
|
20天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化的XGBoost时间序列预测算法matlab仿真
本程序基于Matlab 2024b实现,结合粒子群优化(PSO)与XGBoost算法,用于时间序列预测。通过PSO优化XGBoost超参数,提升预测精度。程序包含完整注释与操作视频,运行后生成预测效果图及性能评估指标RMSE。
|
18天前
|
机器学习/深度学习 数据采集 算法
【创新无忧】基于白鲨算法WSO优化广义神经网络GRNN电机故障诊断(Matlab代码实现)
【创新无忧】基于白鲨算法WSO优化广义神经网络GRNN电机故障诊断(Matlab代码实现)

热门文章

最新文章