算法基础~链表【将链表逆序题(不可申请额外的空间)~头插法】

简介: 算法基础~链表【将链表逆序题(不可申请额外的空间)~头插法】

算法只基础~链表

1,基本知识:

struct ListNode{

    int val;          //存储元素的数据域

    ListNode * next; //存储下一个结点地址的指针域

}    

2,简单例题【将链表逆序题(不可申请额外的空间)~头插法】

先看代码,再分析整个过程【so easy】

public class Solution {
    public ListNode* reverseList(ListNode* head){
        ListNode* new_head = NULL;  //指向新链表头结点的指针
        while(head){
            ListNode *next = head->next;
            head->next = new_head;
            new_head = head;
            head = next;
        }
        return new_head;    //返回新链表头结点
    }
}

(1) 定义了一个新头指针 。     why?~ 看后边解析(1)

(2) 定义一个指向原来链表head的下一个结点的指针next。  why?~ 看后边解析(2)

先看思路过程,最后再解释why?

54.png

 

 

解释

(1)定义一个新头指针~链表的核心点就是头指针啦,通过头指针的next移动(获取当前结点位置)遍历完整个链表,so,头指针就是一个链表的象征

(2)定义一个指向原来链表head的下一个结点的指针next~因为第一个过程head指在1这个结点,head位置需要指向2这个结点然后开始第二个该过程,so,

next指针指向head的下个结点的作用,即标志到2这个结点的位置。

目录
相关文章
|
29天前
|
算法
【优选算法专栏】专题九:链表--------两两交换链表中的节点
【优选算法专栏】专题九:链表--------两两交换链表中的节点
17 0
|
29天前
|
算法
算法系列--递归(一)--与链表有关(上)
算法系列--递归(一)--与链表有关
28 0
|
1天前
|
存储 算法 Java
数据结构与算法 数组和链表
数据结构与算法 数组和链表
7 0
|
23天前
|
存储 算法
双链表——“数据结构与算法”
双链表——“数据结构与算法”
|
29天前
|
算法
算法系列--链表刷题(二)(下)
算法系列--链表刷题(二)(下)
17 0
|
29天前
|
算法
算法系列--链表刷题(二)(上)
算法系列--链表刷题(二)
19 0
|
29天前
|
算法
算法系列--递归(一)--与链表有关(下)
算法系列--递归(一)--与链表有关(下)
21 0
|
29天前
|
存储 算法
【优选算法专栏】专题九:链表--------两数之和
【优选算法专栏】专题九:链表--------两数之和
15 0
|
19小时前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。
|
1天前
|
存储 算法 数据可视化
基于harris角点和RANSAC算法的图像拼接matlab仿真
本文介绍了使用MATLAB2022a进行图像拼接的流程,涉及Harris角点检测和RANSAC算法。Harris角点检测寻找图像中局部曲率变化显著的点,RANSAC则用于排除噪声和异常点,找到最佳匹配。核心程序包括自定义的Harris角点计算函数,RANSAC参数设置,以及匹配点的可视化和仿射变换矩阵计算,最终生成全景图像。