每日一道Leetcode算法——Middle of the Linked List——2019.02.13

MKVToolNix v96.0 详解:无损合并、封装与提取视频的必备工具 视频容器格式是封装视频流、音频流和字幕等多媒体数据的标准包装,其核心原理在于将不同编码的媒体流组织在一个文件中,便于存储和播放。这项技术的价值在于实现了媒体内容的无损重组与高效管理,避免了传统转码方式带来的画质损失和时间消耗。在视频处理、影音制作和个人媒体库管理等应用场景中,对容器进行直接操作的需求非常普遍。本文聚焦于 MKVToolNix 这一专业工具,它作为处理 Matroska(MKV)等容器格式的利器,其 v96.0 版本带来了对 AV1 编码的增强支持与更智能的章节处理功能,能帮助用户快速完成视频 阅读详情

题干:

中文:

给定具有头节点头的非空的单链表,返回链表的中间节点。 如果有两个中间节点,则返回第二个中间节点。

Example 1:

Input: [1,2,3,4,5]
Output: Node 3 from this list (Serialization: [3,4,5])

返回的节点的值为3.(该节点的判断序列化为[3,4,5])。 请注意,我们返回了一个ListNode对象ans,这样: ans.val = 3,ans.next.val = 4,ans.next.next.val = 5,ans.next.next.next = NULL。

Example 2:

Input: [1,2,3,4,5,6]
Output: Node 4 from this list (Serialization: [4,5,6])

由于列表有两个值为3和4的中间节点,我们返回第二个节点。

注意:

给定列表中的节点数将介于1和100之间。

 英文:

Given a non-empty, singly linked list with head node head, return a middle node of linked list.

If there are two middle nodes, return the second middle node.

Example 1:

Input: [1,2,3,4,5]
Output: Node 3 from this list (Serialization: [3,4,5])
The returned node has value 3.  (The judge's serialization of this node is [3,4,5]).
Note that we returned a ListNode object ans, such that:
ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, and ans.next.next.next = NULL.

Example 2:

Input: [1,2,3,4,5,6]
Output: Node 4 from this list (Serialization: [4,5,6])
Since the list has two middle nodes with values 3 and 4, we return the second one.

Note:

  • The number of nodes in the given list will be between 1 and 100.

解题思路:

先获取链表的长度,获取最中间的结点;
然后将头指针指向最中间的结点,并返回新的链表。

package cn.leetcode.easy;

import cn.kimtian.linkedlist.Node;

/**
 * Given a non-empty, singly linked list with head node head, return a middle node of linked list.
 * If there are two middle nodes, return the second middle node.
 *
 * @author kimtian
 * @date 2019.02.13
 * @num 390
 */
public class MiddleOfTheLinkedList {
    /**
     * 先获取链表的长度,获取最中间的结点;
     * 然后将头指针指向最中间的结点,并返回新的链表
     * @param head
     * @return
     */
    public static Node middleNode(Node head) {
        //链表长度为1
        int length = 1;
        //将头结点的下一个结点作为新结点
        Node zz = head.next;
        //如果不是最后一个结点,还有下一个结点,则将长度+1,求出链表的长度
        while (zz != null) {
            length++;
            //将下一个结点赋值给当前结点
            zz = zz.next;
        }
        //求出数组的中位结点
        int middle = length / 2 + 1;
        //移动头指针到中位结点
        for (int i = 1; i < middle; i++) {
            head = head.next;
        }
        //并将其返回
        return head;
    }

    /**
     * 测试类
     *
     * @param args
     */
    public static void main(String[] args) {
        Node n1 = new Node(1);
        Node n2 = new Node(2);
        Node n3 = new Node(3);
        Node n4 = new Node(4);
        Node n5 = new Node(5);
        Node n6 = new Node(6);
        n1.appendNode(n2).appendNode(n3).appendNode(n4).appendNode(n5).appendNode(n6);
        Node a = middleNode(n1);
        a.showNodes();

    }
}

 


别再死磕U-Net了!用PyTorch手把手教你搭建ResUnet,搞定医学图像分割(附完整代码) 本文详细介绍了如何利用PyTorch搭建ResUnet模型,通过引入残差连接解决医学图像分割中的梯度消失、特征退化和细节丢失问题。与传统U-Net相比,ResUnet在Dice系数和收敛速度上均有显著提升,特别适合处理脑部MRI等复杂医学图像。文章还提供了完整的代码实现和关键训练技巧,帮助开发者快速掌握这一先进技术。 阅读详情

相关推荐

配置权重_高盛都在用的资产配置模型,BL贝叶斯框架改进Markowitz

前面我们说到,markoviz的均值-方差模型,第一次,用数学的方式严格证明了投资组合存在最优的权重,但它的学术意义大于实战。主要原因有两个:1,人们很难有效的预测期望收益率;2,最优资产组合配置对输入非常敏感,结果往往难以被人理解。还有就是在投资中,定量只是完成初步构建,同步的定性判断依然非常重要:第一,投资者的认知偏好:倾向于关注他们认为被低估,但有发展潜力或者可以确定相对交易价值的小部分股票...

weixin_39892309的博客 715

数据结构 第二章 线性表 作业(已批改)

判断题 2-1-1 For a sequentially stored linear list of length N, the time complexities for query and insertion are O(1) and O(N), respectively. T F 顺序存储的线性表支持随机存取,所以查询的时间是常数时间,但插入需要把后面每一个元素的位置都进行调...

Jessieeeeeee的博客 1万+

大模型部署之二--vllm+docker部署

本文介绍了在openEuler系统上快速本地部署Qwen3-8B、DeepSeek-R1、Qwen2.5deng 大模型的完整流程。通过modelscope管理模型,采用vllm+docker模式实现部署。主要步骤包括:1)安装conda环境;2)配置docker;3)下载模型;4)编写docker compose配置文件;5)启动服务。特别针对2卡4090服务器提供了参数配置建议,并给出常用命令和参考资料。文档还提示不同系统和平台可能存在差异,为开发者提供了本地部署大型语言模型的实用指南。

weixin_39279863的博客 1133

数据结构第二章 作业

判断题 2-1-1 For a sequentially stored linear list of length N, the time complexities for query and insertion are O(1) and O(N), respectively. T F 顺序存储的线性表支持随机存取,所以查询的时间是常数时间,但插入需要把后面每一个元素的位置都进行调整,所以是线性时...

NolanKy 的 技术博客 4657

drm 之modes

#define _GNU_SOURCE #include <errno.h> #include <fcntl.h> #include <stdbool.h> #include <stdint.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/mman.h> #include <time.h&...

u012794472的专栏 3716

自动驾驶开发者必看:如何用Impromptu VLA数据集提升模型在乡村道路的表现(附实战代码)

本文为自动驾驶开发者提供了利用Impromptu VLA开源数据集提升模型在乡村道路等极端场景表现的实战指南。该数据集专门针对边界模糊道路、非常规障碍物等非结构化环境,通过精选的8万多个极端场景片段,帮助模型弥补数据分布偏差。文章详细介绍了环境搭建、数据准备、模型微调及性能评估的全流程,并附有实战代码,旨在系统性提升自动驾驶系统在长尾场景下的鲁棒性。

t8u9v0w1x的博客 243

数据结构与算法分析——第1~2章考试题

判断题 1-1 The Fibonacci number sequence {FN​} is defined as: F0​=0, F1​=1, FN​=FN−1​+FN−2​, N=2, 3, .... The time complexity of the function which calculates FN​ recursively is Θ(N!).(3分) TF 作者 DS课程组 单位 浙江大学 1-2 (logn)2 is O(n).(2分) T...

m553366999的博客 9083

Arduino平台软硬件原理及使用——Arduino Uno板卡的使用

Arduino Uno板卡的基本使用

洪博hopes的博客 4171

算法竞赛基础训练题_选择题

算法竞赛基础训练题 选择题 For a sequentially stored linear list of length N, the time complexities for query and insertion are : 对于长度为N的顺序存储线性列表,查询和插入的时间复杂度为: B.O(1), O(N) If a linear list is represented by a linked list, the addresses of the elements in the memory :

国家一级致癌物 8738

miniDP与DP管脚定义差异详解及设计避坑指南

本文详细解析了Mini DisplayPort与标准DisplayPort接口在管脚定义上的核心差异,通过对比表格直观展示了两者20针脚的不同排列方式,特别是高速差分信号线的分布。文章结合真实设计案例,为硬件工程师提供了从原理图设计、PCB布局到信号完整性考量及故障排查的完整避坑指南,强调绝不能将两者视为简单的物理缩小版。

weixin_29248653的博客 362

Qt C++ 串口调试助手

1. **串口配置**:支持自动检测可用串口,可配置波特率(9600~921600)、数据位(5~8)、校验位(无/奇/偶/标记/空格)、停止位(1/1.5/2)。- HEX 模式发送时,输入格式需为十六进制字符(0-9、A-F),可带空格(如 `01 A3 FF`)或不带空格(如 `01A3FF`)。// 发送模式:true=HEX,false=ASCII。// 字符串转HEX字节数组。ui->parity->addItems({"无", "奇校验", "偶校验", "标记校验", "空格校验"});

寒寒豆豆软件公司的博客 144

《数据结构》_PTA_数据结构作业1:绪论和线性表

判断题 1-1 T 1-2 T 1-3 An algorithm may or may not require input, but each algorithm is expected to produce at least one result as the output. T 1-4 T 1-5 F 1-6 F 1-7 T 算法分析的两个主要方面是时间复杂度和空间复杂度的分析。 1-8 T 对于顺序存储的长度为N的线性表,访问结点和增加结点的时间复杂度分别对应为O(1)和O(N)。

国家一级致癌物 4599

ubuntu下安装多版本cuda及版本切换教程

首先,从官网下载所需版本的cuda安装包,下载链接。选择对应版本后,会跳转到该版本的配置信息页面。比如我是ubuntu20.04系统,已经安装好了cuda10.0,但是现在还需要用到cuda9.0。那么,在选定版本后,配置信息如下图所示(由于Version选项中没有20.04,因此我们随便选一个即可,这里选的16.04,这一选项不会影响后面的安装),Installer Type选择为runfile(因为使用deb文件进行安装的话,可能会将已经安装的较新的显卡驱动给替换掉),选择好之后点击Base Insta

zeeq的博客 3万+

LeetCode 876. Middle of the Linked List

原题链接在这里:https://leetcode.com/problems/middle-of-the-linked-list/ 题目: Given a non-empty, singlylinked list with head nodehead, returnamiddle node of linked list. If there are two middle nodes, r...

weixin_30256505的博客 76

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

[Swift]LeetCode876. 链表的中间结点 | Middle of the Linked List

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)➤GitHub地址:https://github.com/strengthen/LeetCode➤原文地址:https://www.cnblogs.com/stren...

weixin_30292745的博客 107

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

力扣 Hot100

本文章记录王同学本科期间备战面试算法题经验与总结。

2301_76971934的博客 225

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

数据结构与算法:从核心原理到实战应用,构建高效编程思维

数据结构与算法是计算机科学的核心基础,它们定义了如何高效地组织和处理数据。从数组、链表等线性结构,到树、图等非线性结构,不同的数据结构对应着不同的数据组织逻辑和操作效率。理解时间与空间复杂度分析,是评估算法性能、进行技术选型的关键。在工程实践中,合理运用哈希表、二叉搜索树等数据结构,结合分治、动态规划等算法思想,能极大提升程序的执行效率和资源利用率。这些技术广泛应用于数据库索引、搜索引擎、推荐系统、网络路由等场景,是解决大规模数据处理和高并发问题的基石。本文以哈希表和递归为例,深入浅出地解析了数据结构与算法

weixin_34194087的博客 351

【LeetCode】876. Middle of the Linked List 解题报告(Python)

【LeetCode】876. Middle of the Linked List 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.me/ 题目地址:https://leetcode.com/problems/middle...

负雪明烛 2987

每天一道LeetCode-----找出给定序列的所有子序列

Subsets原题链接Subsets给定一个数组序列,找出所有子序列深度优先扫一遍:)class Solution { public: vector<vector<int>> subsets(vector<int>& nums) { vector<vector<int>> res; vector<int> cur; dfs(0, nums, c

一个程序渣渣的小后院 1万+

Meet in the Middle 算法

前言作为一名往日OI的玩家,偶然间发现昔日的战友在SJTU-ACM的OJ上面发了几道题,随手点开一题发现一题用的正式赫赫有名的Meet in the Middle算法,于是心血来潮就把这题顺手AC了。正文我们首先还是来介绍一下meet in the middle 算法。Meet in the Middle算法可以看成是搜索算法的一个改进,一般来说用于广搜(BFS),不过如果搜索深度有上限的情况下也...

顾哥_NET 1万+

LeetCode.1 Two Sum

题目简述 给定一个随机整型列表,返回两个数的序号,使得它们的和等于给定的目标数。题目假设返回的结果是唯一的,当没有满足的解时返回空值即可。 解法一:暴力求解 每个人最先想到都是暴力求解,对列表中的每一个数,分别和其后面的数相加判断是否等于给定的目标数。 ​ class Solution: def twoSum(self, nums, target): """ ...

qq_30818049的博客 1039

每日一道算法题--leetcode 507--完美数--C++

【题目描述】 【代码思路】 解读题干其实就是要求一个整数的所有因数,重点有两个: 1.输入数字为num,循环的判断条件是i*i<=num,这样就能避免重复计算,这很巧妙值得理解和记忆。 2.sum初始值为1,i的初始值为2,这样就可以避免把num自身加上了,不用在循环中每次都判断。 【源代码】 class Solution { public: bool checkPerfectNu...

weixin_34297300的博客 271

LeetCode-Middle of the Linked List

LeetCode Java Middle of the Linked List

坟头草一米七五 572

循环链表与循环队列

单向循环链表 和普通的链表结构不同,单向循环链表的最后一个节点的指针指向了头结点,也就是和Head指针有相同的引用 和普通链表相比,循环链表不需要头指针,能够从任意位置实现链表遍历 双向循环链表 和单向链表相比,双向链表多了一个指向上一个节点的前向指针 相比于单向链表,双向循环链表的遍历更加灵活,但缺点是,进行插入和删除操作需要修改更多的指针

雪村一郎的博客 1万+

每日一道算法题--leetcode 66--加一--python 两种方式

详解在本人掘金博文中,下面是链接: 传送门

transformed的博客 336

Python Linked Lists: Singly Linked List, Circular Linked List, and Doubly Linked List

Python Linked Lists Node Class Node class has a constructor that sets the data passed in, and optionally can set the next_node and prev_node. It also has a str method to give a string representation for printing. Note that prev_node is only used for Doubly

Amos98的博客 419
上一篇: 每日一道Leetcode算法—— Robot Return to Origin——2019.02.14
下一篇: 每日一道Leetcode算法——sql题——2019.02.15
田小江爱分享
博客等级 码龄10年 34粉丝 143原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值