力扣876:链表的中间结点

给你单链表的头结点 head ,请你找出并返回链表的中间结点。

如果有两个中间结点,则返回第二个中间结点。

示例 1:

复制代码
输入:head = [1,2,3,4,5]
输出:[3,4,5]
解释:链表只有一个中间结点,值为 3 。

示例 2:

复制代码
输入:head = [1,2,3,4,5,6]
输出:[4,5,6]
解释:该链表有两个中间结点,值分别为 3 和 4 ,返回第二个结点。

思想:先求链表长度,然后求链表的中间结点

代码:

复制代码
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* middleNode(struct ListNode* head) {
    struct ListNode *p=head;
    int len=0;
    int n=0;
    while(p!=NULL){
        p=p->next;
        len++;
    }
    p=head;
    while(n<len/2){
        n++;
        p=p->next;
    }
    return p;
}

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

相关推荐
Codeking__10 分钟前
Redis的value类型及编码方式介绍——hash
redis·算法·哈希算法
u01040583612 分钟前
企业微信通讯录同步服务的增量更新与冲突解决算法
算法·企业微信
码农水水15 分钟前
阿里Java面试被问:RocketMQ的消息轨迹追踪实现
java·开发语言·windows·算法·面试·rocketmq·java-rocketmq
智驱力人工智能18 分钟前
矿场轨道异物AI监测系统 构建矿山运输安全的智能感知防线 轨道异物检测 基于YOLO的轨道异物识别算法 地铁隧道轨道异物实时预警技术
人工智能·opencv·算法·安全·yolo·边缘计算
橘颂TA26 分钟前
【剑斩OFFER】算法的暴力美学——leetcode 429 题:N 叉树的层序遍历
算法
"YOUDIG"27 分钟前
信稿笺纸设计工具:传统排版美学与数字化设计的高效融合
科技·考研·算法·面试·职场和发展·高考
程序员-King.28 分钟前
day126—二分查找—寻找旋转排序数组中的最小值(LeetCode-153)
算法·leetcode·二分查找
菜鸟233号28 分钟前
力扣494 目标和 java实现
java·数据结构·算法·leetcode
有一个好名字28 分钟前
力扣-字符串解码
java·算法·leetcode
sali-tec32 分钟前
C# 基于OpenCv的视觉工作流-章9-均值滤波
人工智能·opencv·算法·计算机视觉·均值算法