数据结构每日一题day11(链表)★★★★★

题目描述:有一个带头结点的单链表L,请设计一个算法查找其第1个数据值为e的结点,若存在则返回指向该结点的指针,若不存在则返回 NULL。

算法思想:

输入检查:若链表为空(仅有头结点),直接返回NULL。

遍历链表:从头结点后的第一个结点开始依次向后遍历,比较每个结点的数据域是否等于e。

返回结果:若找到匹配的结点,立即返回指向该结点的指针;若遍历结束未找到,返回NULL。

复杂度分析:

时间复杂度:O(n)空间复杂度:O(1)

cpp 复制代码
#include <stdio.h>
#include <stdlib.h>

typedef struct LNode {
    int data;               // 数据域
    struct LNode *next;     // 指针域
} LNode, *LinkList;

// 查找第一个值为e的结点
LNode* LocateElem(LinkList L, int e) {
    if (L == NULL) {
        return NULL;        // 空链表直接返回
    }
    
    LNode *p = L->next;     // p指向第一个实际结点(跳过头结点)
    
    while (p != NULL) {
        if (p->data == e) {
            return p;       // 找到则返回指针
        }
        p = p->next;       // 继续遍历
    }
    
    return NULL;            // 未找到返回NULL
}
相关推荐
小许学java1 小时前
七大排序算法的基本原理
数据结构·算法·排序算法
艾醒1 小时前
大模型面试题剖析:深入解析 Transformer 与 MoE 架构
人工智能·算法
艾醒2 小时前
探索大语言模型(LLM):一文读懂通用大模型的定义、特点与分类
算法
格林威2 小时前
短波红外相机在工业视觉检测中的应用
人工智能·深度学习·数码相机·算法·计算机视觉·视觉检测
_dindong3 小时前
动规:01背包
数据结构·笔记·学习·算法·leetcode·动态规划·力扣
-雷阵雨-3 小时前
数据结构——排序算法全解析(入门到精通)
java·开发语言·数据结构·排序算法·intellij-idea
格林威4 小时前
UV紫外相机在工业视觉检测中的应用
人工智能·深度学习·数码相机·算法·计算机视觉·视觉检测·uv
LGL6030A4 小时前
数据结构学习(1)——指针、结构体、链表(C语言)
数据结构·学习
蒙奇D索大4 小时前
【数据结构】考研算法精讲:分块查找的深度剖析 | 从“块内无序、块间有序”思想到ASL性能最优解
数据结构·笔记·学习·考研·改行学it
软件算法开发5 小时前
基于MVO多元宇宙优化的DBSCAN聚类算法matlab仿真
算法