①中文题目

给定一个带有头结点 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,我们返回第二个结点。

提示:

给定链表的结点数介于 1 和 100 之间。

②思路

首先需要寻找链表的长度,遍历链表。用小写i去记录长度。然后用j去遍历,直到j=i/2的时候,就遍历到了链表的中点处,输出。

③代码

 class Solution {
public ListNode middleNode(ListNode head) {
if(head==null||head.next==null)
return head;
int i=1;
ListNode temp1=head; //temp1用于遍历找到链表的长度
ListNode temp2=head; //temp2用于遍历找到链表的中点
while(temp1.next!=null){
temp1=temp1.next;
i+=1;
} for(int j=0;j<i/2;j++){
temp2=temp2.next;
}
return temp2;
}
}

④运行结果

执行结果:通过

显示详情
执行用时 :0 ms, 在所有 Java 提交中击败了100.00%的用户
内存消耗 :33.8 MB, 在所有 Java 提交中击败了67.47%的用户

⑤学到的知识

1、期待java有个能够直接得到链表长度的库函数。

2、我有个改进的想法,在第一次寻找数组长度的时候,就开始寻找中点,具体思想是,小写i不是每增加1次,temp1就向后移动1位嘛,那么我想让小写i每增加两次,让temp2向后移动1次,当i成为链表长度时,我的temp2也就找到了链表的中点。

我这种改进的思路是在于,我觉得,在上述原始代码里,第一次遍历,居然只用来找链表长度这一件事,这太浪费资源了。

[LC]876题 Middle of the Linked List (链表的中间结点)(链表)的更多相关文章

  1. [LC]141题 Intersection of Two Linked Lists (相交链表)(链表)

    ①中文题目 编写一个程序,找到两个单链表相交的起始节点. 如下面的两个链表: 在节点 c1 开始相交. 注意: 如果两个链表没有交点,返回 null.在返回结果后,两个链表仍须保持原有的结构.可假定整 ...

  2. [LC]83题 Remove Duplicates from Sorted List(删除排序链表中的重复元素)(链表)

    ①英文题目 Given a sorted linked list, delete all duplicates such that each element appear only once. Exa ...

  3. PAT甲题题解-1074. Reversing Linked List (25)-求反向链表

    题意说的很清楚了,这种题的话,做的时候最好就是在纸上自己亲手模拟一下,清楚一下各个指针的情况, 这样写的时候就很清楚各个指针变量保存的是什么值. PS:一次AC哈哈,所以说自己动手在纸上画画还是很有好 ...

  4. [LeetCode] 876. Middle of the Linked List 链表的中间结点

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

  5. 【Leetcode_easy】876. Middle of the Linked List

    problem 876. Middle of the Linked List 参考 1. Leetcode_easy_876. Middle of the Linked List; 完

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

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 使用哑结点 不使用哑结点 日期 题目地址:https ...

  7. 876. Middle of the Linked List - LeetCode

    Question 876. Middle of the Linked List Solution 题目大意:求链表的中间节点 思路:构造两个节点,遍历链接,一个每次走一步,另一个每次走两步,一个遍历完 ...

  8. 876. Middle of the Linked List

    1. 原始题目 Given a non-empty, singly linked list with head node head, return a middle node of linked li ...

  9. LeetCode 876 Middle of the Linked List 解题报告

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

随机推荐

  1. Web前端助手-功能丰富的Chrome插件

    整合优秀的前端实用工具.免费,可配置的强大工具集 示例 安装 github仓库: https://github.com/zxlie/FeHelper 官网地址:https://www.baidufe. ...

  2. [NOIp2014] luogu P1351 联合权值

    哎我博 4 了. 题目描述 无向连通图 GGG 有 nnn 个点,n−1n−1n−1 条边.点从 111 到 nnn 依次编号,编号为 iii 的点的权值为 WiW_iWi​,每条边的长度均为 111 ...

  3. [JOYOI1463] 智商问题

    题目限制 时间限制 内存限制 评测方式 题目来源 1500ms 131072KiB 标准比较器 Local 题目背景 各种数据结构帝~ 各种小姊妹帝~ 各种一遍AC帝~ 来吧! 题目描述 某个同学又有 ...

  4. Vulnhub靶场渗透练习(五) Lazysysadmin

    第一步扫描ip    nmap 192.168.18.*  获取ip 192.168.18.147 扫描端口 root@kali:~# masscan - --rate= Starting massc ...

  5. Joomla3.4.6 RCE漏洞深度分析

    笔者<Qftm>原文发布:https://www.freebuf.com/vuls/216512.html *严正声明:本文仅限于技术讨论与分享,严禁用于非法途径 0×00 背景 10月9 ...

  6. PassWord控件

    <StackPanel Margin="> <Label>Text:</Label> <TextBox /> <Label>Pas ...

  7. 《编写可维护的JavaScript》 笔记

    <编写可维护的JavaScript> 笔记 我的github iSAM2016 概述 本书的一开始介绍了大量的编码规范,并且给出了最佳和错误的范例,大部分在网上的编码规范看过,就不在赘述 ...

  8. Hadoop环境部署

    1.虚拟机克隆 在VM界面点击查看-自定义-库,然后在左边我的计算机下右键点击安装好的第一个系统,然后管理-克隆,选择克隆系统所在的文件路径即可. 2.三台主机名字修改 root用户下: (1)编辑n ...

  9. js多物体多方向缓动动画加带有回调机制

    一.获取一组div元素 var boxs = document.getElementsByTagName('div'); 二.封装获取属性值的函数 function getStyle(dom, att ...

  10. Unity5-ABSystem(二):AssetBundle导出

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/lodypig/article/detai ...