专栏首页皮皮瞎学编程LinkedList - 876. Middle of the Linked List

LinkedList - 876. Middle of the Linked List

  1. Middle of the Linked List

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

If there are two middle nodes, return the second middle node.

Example 1:

Input: [1,2,3,4,5] Output: Node 3 from this list (Serialization: [3,4,5]) The returned node has value 3. (The judge's serialization of this node is [3,4,5]). Note that we returned a ListNode object ans, such that: ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, and ans.next.next.next = NULL.

Example 2:

Input: [1,2,3,4,5,6] Output: Node 4 from this list (Serialization: [4,5,6]) Since the list has two middle nodes with values 3 and 4, we return the second one.

Note:

  • The number of nodes in the given list will be between 1 and 100.

思路:

就是求出链表的终点,非常简单的题目,使用快慢指针,快指针每次走一步,慢指针每次走两步,之所以写一下,是因为很多链表类的题目,都会首先求一下链表长度,再继续往下做。比如有一道题,让把一个有序列表,从中间断开,在合并起来,变成摇摆数组之类的题目。

代码:

go:

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func middleNode(head *ListNode) *ListNode {
    slow , fast := head, head
    for fast != nil && fast.Next != nil {
        fast = fast.Next.Next
        slow = slow.Next
    }
    
    return slow
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Leetcode 876. Middle of the Linked List

    版权声明:博客文章都是作者辛苦整理的,转载请注明出处,谢谢! https://blog.csdn....

    Tyan
  • Leetcode-Easy 876. Middle of the Linked List

    结题思路主要是通过快慢指针来找到中间节点:快指针的移动速度是慢指针移动速度的2倍,因此当快指针到达链表尾时,慢指针到达中点。

    致Great
  • Golang Leetcode 876. Middle of the Linked List.go

    版权声明:原创勿转 https://blog.csdn.net/anakinsun/arti...

    anakinsun
  • [LeetCode Python 3] 876. Middle of the Linked List(链表的中间结点)

    设置两个指向头节点的快慢指针,快指针每次走两步,慢指针每次走一步,当快指针到达最后结点或为空时,慢指针指向的就是中间结点 。

    Woodson
  • LeetCode 分类刷题 —— Linked List

    最近有朋友问我怎么没有更新文章了,因为最近有空的时候都在刷 LeetCode,零零星星刷了快 2 个月了,也累积了不少题目了,所以最近打算把做的几百道题归类,总...

    一缕殇流化隐半边冰霜
  • Leetcode【817、876、1019】

    直接将数组转化为集合,然后遍历一次链表。令 ans = 0,flag = True:

    echobingo
  • Leetcode contests 95 题解

    这道题我用了记忆化搜索,用递归暴搜可能是能获取到正确结果的,但是直接的递归在重复计算好东西,所以我用dp数组把计算出来的结果保存起来,用的时候直接调取结果,可以...

    xindoo
  • 【LeetCode程序员面试金典】面试题 02.03. Delete Middle Node LCCI

    Implement an algorithm to delete a node in the middle (i.e., any node but the fi...

    韩旭051
  • 你不知道的LinkedList(一):基于jdk1.8的LinkdeList源码分析

    在对ArrayList源码有过了解之后,现在对LinkedList源码进行相应的分析。

    冬天里的懒猫
  • LeetCode707:设计链表 Design Linked List

    设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引...

    爱写bug
  • LeetCode707:设计链表 Design Linked List

    设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引...

    爱写bug
  • The Note based on Data Structures and Algorithm Analysis in C CHAPTER 3 P2

    The Note based on Data Structures and Algorithm Analysis in C

    Tia
  • LeetCode 876. 链表的中间结点

    https://leetcode-cn.com/problems/middle-of-the-linked-list/

    freesan44
  • Java集合源码分析(二)Linkedlist

    前言   前面一篇我们分析了ArrayList的源码,这一篇分享的是LinkedList。我们都知道它的底层是由链表实现的,所以我们要明白什么是链表? 一、Li...

    用户1195962
  • java 中几种常用数据结构

    java中有几种常用的数据结构,主要分为Collection和map两个主要接口(接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承自这些接口的数...

    天涯泪小武
  • 430. Flatten a Multilevel Doubly Linked List

    You are given a doubly linked list which in addition to the next and previous po...

    Dylan Liu
  • Java 中的 LinkedHashMap 和 HashMap 有什么关系?

    HashMap,LinkedHashMap,TreeMap都属于Map; Map 主要用于存储键(key)值(value)对:

    一个会写诗的程序员
  • LeetCode 203 & 237. Delete Node in a Linked List

    Write a function to delete a node (except the tail) in a singly linked list, giv...

    大学里的混子
  • LeetCode通关:听说链表是门槛,这就抬脚跨门而入

    一个单向链表包含两个值: 当前节点的值和一个指向下一个节点的引用。也可以称之为数据域和指针域。

    三分恶

扫码关注云+社区

领取腾讯云代金券