leetcode876.链表的中间结点
文章目录
- 前言
- 一、方法一
- 二、方法二
- 总结
前言
leetcode新手村876.链表的中间结点
提示:以下是本篇文章正文内容,下面案例可供参考
一、方法一
第一种方法:
首先遍历一遍链表,记录下节点的数目。再遍历一遍链表,遍历到n/2处停下,即得到链表的中间结点
需要注意的地方就是这个链表是没有一个空的头节点的,头节点直接就是第一个元素
/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };method1:先遍历整个单链表,找出长度,/2,可得中间的位置再从头向后查找/2个注意:这个是没有头结点的链表*/struct ListNode* middleNode(struct ListNode* head){//struct ListNode * p = head->next;struct ListNode * p = head;int n = 0;while(p != NULL){n++;p = p->next;}p = head;for(int i=1; i<=n/2; i++){p = p->next;}return p;
}
二、方法二
定义快慢两个指针,每次快指针走两个节点,慢指针走一个节点,当快指针走到结尾的时候,慢指针正好走到链表的中间。
代码如下(示例):
/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };method2:使用快慢两个指针*/
struct ListNode* middleNode(struct ListNode* head){struct ListNode *quickP, *slowP;quickP = head;slowP = head;while(quickP != NULL){quickP = quickP->next;if(quickP == NULL)break;quickP = quickP->next;slowP = slowP->next;}return slowP;
}
总结
没什么好总结的
leetcode876.链表的中间结点相关推荐
- leetcode876. 链表的中间结点
leetcode876. 链表的中间结点 题目描述 链接: leetcode876. 给定一个头结点为 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例1 ...
- leetcode-876. 链表的中间结点解法
给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4 ...
- LeetCode-876. 链表的中间结点 C语言
876. 链表的中间结点 给定一个头结点为 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 ...
- LeetCode-876. 链表的中间结点
题目 给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[ ...
- 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]) ...
- 876. 链表的中间结点(C语言)
**给定一个头结点为 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3, ...
- 七十一、去重交换排序链表、 求链表的中间结点
@Author:Runsen 编程的本质来源于算法,而算法的本质来源于数学,编程只不过将数学题进行代码化. ---- Runsen 最近在重新梳理学算法的知识,本文为链表常见操作复习的总结文章,会讲解 ...
- LeetCode Algorithm 876. 链表的中间结点
876. 链表的中间结点 Ideas 这题直接秒杀吧,快慢指针,快指针一次走两步,慢指针一次走一步,快指针到头之后慢指针正好到链表中间. Code C++ class Solution {public ...
最新文章
- 19-7-16学习笔记
- mysql流量控制_UDP流量控制之分析
- 一篇文章带你飞,轻松弄懂 CDN 技术原理
- CFileDialog的基本使用
- 如何使用 Python 实现微信消息防撤回
- Atitit.java 反编译 工具 attilax 总结
- 用友nc系统服务器端口号,用友NC数据库服务器参数配置说明
- Android 手机修改 WiFi MAC 地址
- HDU-2819-Swap [二分匹配][输出路径]
- 解决Mysql计算时除数为0
- 数据库原理与应用实验九 视图的使用
- unlink快速入门
- 记一次企业邮官网SEO优化
- 稀疏数组练习demo 数据结构和算法
- 微店开放平台接入指南
- Application Server
- 如何在vscode上运行调试C++(最简单的方法)
- 从键盘上输入一个字符,判断并输出是控制符、数字字符、大写字母、小写字母或是其他字符
- php x86什么意思,win10x86是什么意思
- Linux中LVM的工作原理是什么?优缺点有哪些?
热门文章
- 计算机毕业设计asp.net的高校科研项目管理系统(源码+系统+mysql数据库+Lw文档)
- 分享爬虫的简单知识。附带爬虫案例。
- 期末作业成品代码——威海影视(1页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码
- 大数据可视化研究应用
- 一文读懂射频器件业未来发展与趋势
- encoder to decoder
- 如何用myeclipse远程调试tomcat
- linux 常用命令记录
- 闭环控制(自动控制理论)
- KVM镜像管理利器-guestfish使用详解