博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 876 链表的中间节点
阅读量:4143 次
发布时间:2019-05-25

本文共 757 字,大约阅读时间需要 2 分钟。

链表的中间节点

题目

给定一个带有头结点 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 之间。

思路

使用两个快慢指针,快指针每次走两个节点,慢指针每次走一个节点,当快指针或快指针的next为NULL时,(因为快指针一次需要走两个节点,如果next为NULL时也不能走,程序会崩)此时慢指针所指就是中间节点

代码

struct ListNode* middleNode(struct ListNode* head){    if(head == NULL)        return;    struct ListNode* fast = head;    struct ListNode* slow = head;    while(fast && fast->next){        fast = fast->next->next;        slow = slow->next;    }    return slow;}

转载地址:http://vwkti.baihongyu.com/

你可能感兴趣的文章
EasySwift/YXJTagView 极其强大的标签框架,不仅可以填充文字,任意视图都可以
查看>>
EasySwift/EasySearchBar 自定义SearchBar
查看>>
EasySwift/YXJXibView OC新建view勾选上xib文件即可自动关联,swift新建view已经不能勾选xib,但是又想用到xib,YXJXibView就能帮你搞定两秒钟搞定!
查看>>
推荐!国外程序员整理的Java资源大全
查看>>
MAC下安装MySQL以及重置初始密码详细教程
查看>>
Navicat Premium11.0.16 for mac 中文破解版
查看>>
mac安装mysql的两种方法(含配置)
查看>>
GitHub 中国区前 100 名到底是什么样的人?
查看>>
运行Maven是报错:No goals have been specified for this build
查看>>
NSAttributedString属性
查看>>
学Android开发 这19个开发工具助你顺风顺水
查看>>
国内一线互联网公司内部面试题库
查看>>
Linux真正的优势以及学习方法
查看>>
EasySwift/YXJPullScale UITableView,UICollectionView,UIScrollerView的顶部放大控件,不仅支持图片,也支持任意视图
查看>>
EasySwift/YXJImageCompressor 图片压缩,拍照上传压缩图片,比例压缩,data压缩,方便好用
查看>>
EasySwift/YXJPageControl 高扩展的PageController
查看>>
EasySwift/YXJCycleView 任意视图的无限循环轮播图,可以是本地图片,可以是任意的view,可以是远程图片,再加文字描述岂不更好,pageController也支持高度自定义。
查看>>
EasySwift/EasyCountDownButton 一个超级好用的倒计时Button
查看>>
EasySwift/YXJSlideBar 类似网页新闻的菜单
查看>>
EasySwift/YXJOnePixelLine 极其方便的画出真正的一个像素的线
查看>>