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
}
相关推荐
什巳6 小时前
JAVA练习309- 二叉树的层序遍历
java·数据结构·算法·leetcode
什巳8 小时前
JAVA练习306- 翻转二叉树
java·数据结构·算法·leetcode
想做小南娘,发现自己是女生喵10 小时前
第 2 章 顺序表和 vector
java·数据结构·算法
en.en..12 小时前
冒泡排序与选择排序完整对比解析
开发语言·数据结构·算法·c#·排序算法
什巳14 小时前
JAVA练习312- 二叉搜索树中第 K 小的元素
java·数据结构·算法·leetcode
LJHclasstore_luo15 小时前
【C++题解】118875.最大宝藏区
数据结构·c++·算法
罗超驿17 小时前
9.优先级队列与堆:从底层原理到实战应用的完整指南
数据结构·算法
牧以南歌〆18 小时前
数据结构<三>单循环链表
c语言·数据结构·算法·链表
Java技术实战19 小时前
一文通解:数据结构之 栈
java·jvm·数据结构·
Lucis__1 天前
基于Cache替换算法的LRU缓存实现
数据结构·c++·算法·缓存·lru