热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【LeetCode力扣】链表的中间结点,给定一个头结点为head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。

学习目标:目标:熟练运用Java所学知识学习内容:本文内容:使用Java实现:链表的中间结点文章目录学习目
学习目标:

目标:熟练运用Java所学知识



学习内容:

本文内容:使用Java实现:链表的中间结点



文章目录

  • 学习目标:
  • 学习内容:
  • 题目描述:
  • 解题思路:
  • 实现代码:


题目描述:

给定一个头结点为 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.

示例 2:

输入:[1,2,3,4,5,6]
输出:此列表中的结点 4 (序列化形式:[4,5,6]) 由于该列表有两个中间结点,值分别为 3 ,4,我们返回第二个结点。


解题思路:

该题目需要返回链表的中间结点,所以我们只需要知道链表的中间结点在第几个结点即可,
首先遍历链表得到链表的长度,然后除以二,就得到的中间节点是第几个结点,然后循环遍历相应次数即可

实现代码:

public static ListNode middleNode(ListNode head) {ListNode cur&#61;head;int count&#61;0;//保存链表长度//循环遍历统计长度while(cur!&#61;null){cur&#61;cur.next;//更新结点count&#43;&#43;;}cur&#61;head;//将cur更新至头结点int mid&#61;count/2;//得到中间结点的位置//循环相应次数。得到中间结点for(int i&#61;0;i<mid;i&#43;&#43;){cur&#61;cur.next;}return cur;//返回中间结点}


推荐阅读
author-avatar
知足幸福_21942
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有