LeetCode-876. 链表的中间结点 C语言
876. 链表的中间结点
给定一个头结点为 head 的非空单链表,返回链表的中间结点。
如果有两个中间结点,则返回第二个中间结点。
示例 1:
输入:[1,2,3,4,5]
输出:此列表中的结点 3 (序列化形式:[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.
思路:
定义一对快慢双指针。fast走两步,slow走一步。
当fast到达尾部,slow指向的就是链表中间元素。
以上是链表元素为单数的情况。如果为双数,情况如下。
当fast为NULL,slow指向的就是下中位数。
结束遍历链表的条件为链表最后一个元素不为NULL,并且数组最后元素的next不为NULL。
代码示例
struct ListNode* middleNode(struct ListNode* head) {//定义快慢双指针。struct ListNode* slow = head;struct ListNode* fast = head;//结束遍历链表的条件为链表最后一个元素不为NULL,并且数组最后元素的next不为NULL。while (fast && fast->next){slow = slow->next;fast = fast->next->next;}//遍历结束slow指针指向中位数,return slow;}
LeetCode-876. 链表的中间结点 C语言相关推荐
- LeetCode 876——链表的中间结点
1. 题目 给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形 ...
- Leetcode 876. 链表的中间结点 (每日一题 20210918)
给定一个头结点为 head 的非空单链表,返回链表的中间结点.如果有两个中间结点,则返回第二个中间结点.示例 1:输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4,5]) ...
- LeetCode 876. 链表的中间结点(快慢指针)
1. 题目 给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 2. 解题 快慢指针法 class Solution {public:List ...
- leetcode 876. 链表的中间结点 做题笔记
题目: 给定一个头结点为 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[ ...
- LeetCode 876. 链表的中间结点
原题链接 解题思路:快慢指针,快指针走两步,慢指针走一步.快指针到NULL慢指针自然到中间位置 /*** Definition for singly-linked list.* struct List ...
- leetcode 876.链表中间结点
链表中间结点 leetcode题目链接:876. 链表的中间结点 一.朴素解法 最直观的思路,因为不知道这个链表的长度,就先通过一次循环统计链表的长度len 之后第二次遍历,直到找到中间结点,输出 / ...
- 每日一道leetcode(python)876. 链表的中间结点
每日一道leetcode(python)876. 链表的中间结点 2021-08-19 给定一个头结点为 head 的非空单链表,返回链表的中间结点.如果有两个中间结点,则返回第二个中间结点.示例 1 ...
- JavaScript——leetcode算法入门876. 链表的中间结点【双指针专题】
题目描述 给定一个头结点为 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式: ...
- 【LeetCode题目详解】(二)206.反转链表、876.链表的中间结点
目录 一.力扣第206题:反转链表 1.思路一 2.思路二 二.力扣第876题:链表的中间结点 1.思路一 2.思路二 总结 一.力扣第206题:反转链表 题目链接:206. 反转链表 - 力扣(Le ...
- LeetCode Algorithm 876. 链表的中间结点
876. 链表的中间结点 Ideas 这题直接秒杀吧,快慢指针,快指针一次走两步,慢指针一次走一步,快指针到头之后慢指针正好到链表中间. Code C++ class Solution {public ...
最新文章
- Linux之文件权限命令
- 如果有一天程序员再也不忙了
- LSASRV事件ID:40960
- 氮化镓充电器哪家好_双十二推荐入手的热门氮化镓充电器
- greenplum 查询出来的数字加减日期_POLA宝丽美白精华怎么查看生产日期保质期?保质期时间是几年的?查批号在哪里查?...
- python基础之内置异常对象
- 游戏引擎中的通用编程技术
- 操作系统可实训可练习的项目
- C++_基础部分_C++文件操作_文件的写入操作---C++语言工作笔记076
- 华住:移动时代,自主可控的架构秘密
- 计算机组成原理期末复习整理 白中英版本
- 事务实例--银行转账
- python画tan_Python tan() 函数
- python whl文件_python whl是什么文件
- H5 - 手机 APP 接入支付宝、微信、银联支付流程汇总
- android友盟统计,RN集成友盟统计(Android)
- windows下仿Mac Dock软件MultiDock
- PhotoShop CS6实现照片背景虚化效果
- Ubuntu18.04 或 Windows10 配置yolov5环境并测试运行
- skywalking和jpa冲突
热门文章
- 软件体系结构:应用软件的设计与开发
- 脑电产品-时间常数与截止频率相互换算
- oracle快速了解法,快速掌握Oracle基本语法,让你来去自如
- 词根、词缀笔记(一)
- 设计一个函数把两个数字相加。不得使用 + 或者其他算术运算符
- Python之数据载入、存储及文件格式
- 逆水寒跑商时服务器维护,逆水寒跑商路线推荐 合适的路线让你事半功倍
- Springboot 2.6.1 + Nacos 2.0.3 + Dubbo 3.0.2.1
- 落地零售智能体,百联集团全力打造面向未来的数字化商业体
- 阿里JAVA开发手册(泰山版)