leetcode876 链表的中间节点

题目

给你单链表的头结点 head ,请你找出并返回链表的中间结点。

如果有两个中间结点,则返回第二个中间结点。

示例

输入:head = 1,2,3,4,5

输出:3,4,5

解释:链表只有一个中间结点,值为 3 。

输入:head = 1,2,3,4,5,6

输出:4,5,6

解释:该链表有两个中间结点,值分别为 3 和 4 ,返回第二个结点。

解析

快慢指针,直接上代码,调试不清楚就画个图捋捋

go 复制代码
/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func middleNode(head *ListNode) *ListNode {
  slow := head
  fast := head
  for fast != nil && fast.Next != nil {
    fast = fast.Next.Next
    slow = slow.Next
  }
  return slow
}
相关推荐
8Qi84 分钟前
LeetCode 76. 最小覆盖子串(Minimum Window Substring)
数据结构·算法·leetcode·滑动窗口·哈希表
丘山望岳30 分钟前
二叉搜索双壁——map和set
开发语言·数据结构·c++
QiLinkOS32 分钟前
合肥气链科技有限公司创办与未来技术应用
c语言·数据结构·c++·人工智能·单片机·嵌入式硬件·算法
Solis程序员40 分钟前
TreeMap 核心原理与实战
java·数据结构·算法
Dlrb121140 分钟前
数据结构-内核链表
linux·数据结构·链表·内核链表·inline·容器宏
CS创新实验室1 小时前
数据结构:程序世界的“收纳术“
数据结构
小欣加油1 小时前
leetcode2126 摧毁小行星
数据结构·c++·算法·leetcode·职场和发展
并不喜欢吃鱼1 小时前
从零开始 C++----- 十三【C++ 数据结构】哈希表从原理到手撕实现(开放定址 + 链地址全覆盖)
数据结构·c++·散列表
lDevinl2 小时前
【无标题】
数据结构·c++·青少年编程
星马梦缘11 小时前
aaaaa
数据结构·c++·算法