首页 > 试题广场 >

链表的中间结点

[编程题]链表的中间结点
  • 热度指数:1740 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个头结点为head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。
结点数量介于 1100 之间。
示例1

输入

{1,2,3}

输出

{2,3}

说明

此列表中的中间为结点 2 ,测评系统对该结点序列化表述是 {2,3} 
示例2

输入

{1,2,3,4}

输出

{3,4}

说明

此列表中的中间为结点 3 ,测评系统对该结点序列化表述是 {3,4} 

说明:本题目包含复杂数据结构ListNode,点此查看相关信息
头像 太阳hxy
发表于 2023-07-14 14:15:07
链表的中间节点 思路: 1.设置两个指针,一个快指针fast和慢指针slow,快指针以两个节点两个节点进行移动,慢指针以一个节点进行移动 2.只要当fast指针和fast.next指针还没有指向null 3.最后slow指向的就是链表的中点 代码: import java.util.* 展开全文
头像 觅杳
发表于 2023-05-15 17:36:47
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * 展开全文
头像 牛客82035003号
发表于 2022-08-30 23:05:52
结点个数为奇数时只有一个中心结点,为偶数时有两个中心结点,返回第二个,
头像 君无颜
发表于 2022-03-17 20:14:48
单向链表找中点,快慢指针: slow一次走一步,fast一次走两步 fast走到头的时候,slow正好走了一半,也就是中点位置。 c++实现 class Solution { public: ListNode* middleNode(ListNode* head) { 展开全文
头像 uwspstar
发表于 2022-05-08 04:30:47
/* * function ListNode(x){ * this.val = x; * this.next = null; * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListN 展开全文
头像 已注销
发表于 2022-04-07 14:50:02
快慢指针 不要边界判断,直接异常梭哈 # class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法 展开全文
头像 fred-coder
发表于 2022-03-02 11:29:12
双指针, 设置慢指针为 slow, 快指针为 fast, fast 指针每次移动两位, slow 每次移动一位;则 fast 到达末尾时, slow 为中间节点 # class ListNode: # def __init__(self, x): # self.val = x 展开全文
头像 姐姐的遮阳伞
发表于 2022-04-08 01:30:48
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * 展开全文
头像 extern
发表于 2024-02-09 21:42:45
/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ class Solution { public: /* 展开全文
头像 extern
发表于 2024-02-09 21:45:07
package main import . "nc_tools" /* * type ListNode struct{ * Val int * Next *ListNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方 展开全文