数据结构每日一题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
}
相关推荐
PXM的算法星球43 分钟前
【leetcode】3524 求出数组的X值1
算法·leetcode·职场和发展
椰羊~王小美3 小时前
LeetCode -- Flora -- edit 2025-04-27
算法·leetcode·职场和发展
缘友一世4 小时前
从线性回归到逻辑回归
算法·逻辑回归·线性回归
前端_学习之路5 小时前
javaScript--数据结构和算法
javascript·数据结构·算法
weixin_428498495 小时前
使用HYPRE库并行装配IJ稀疏矩阵指南: 矩阵预分配和重复利用
算法·矩阵
雾削木7 小时前
mAh 与 Wh:电量单位的深度解析
开发语言·c++·单片机·嵌入式硬件·算法·电脑
__lost7 小时前
小球在摆线上下落的物理过程MATLAB代码
开发语言·算法·matlab
8RTHT8 小时前
数据结构(七)---链式栈
数据结构
mit6.8249 小时前
[Lc_week] 447 | 155 | Q1 | hash | pair {}调用
算法·leetcode·哈希算法·散列表
Fency咖啡9 小时前
《代码整洁之道》第9章 单元测试 - 笔记
数据结构·b树