首页 > 其他分享 >876. 链表的中间结点

876. 链表的中间结点

时间:2022-10-13 21:48:28浏览次数:42  
标签:结点 876 head fast next 链表 中间 ans

题目描述

给定一个头结点为 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,我们返回第二个结点。

参考代码

/**
 * @param {ListNode} head
 * @return {ListNode}
 */
var middleNode = function(head) {
    // 采用快慢指针的方法,
    let fast = head,slow= head
    while(fast!=null&&fast.next!=null){
        fast = fast.next.next
        slow = slow.next
    }
    return slow
};

思路

可以使用双指针,采用快慢指针的方法去遍历链表
当快指针遍历结束时 慢指针刚好指向中间
需要注意的是 当节点个数为奇数时我们返回的是中间节点
当节点个数是偶数时,我们返回的是靠后的那个中间节点
如果想返回靠前的中间节点,可以使用父子指针

标签:结点,876,head,fast,next,链表,中间,ans
From: https://www.cnblogs.com/zx529/p/16789785.html

相关文章

  • 19. 删除链表的倒数第 N 个结点
    题目描述给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。样例输入输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]输入:head=[1],n=1输出:[]代码参......
  • 剑指 Offer 22. 链表中倒数第k个节点
    题目描述:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的......
  • 链表-23. 合并K个升序链表
    题目描述测试样例示例1:输入:lists=[[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表......
  • 剑指 Offer 35. 复杂链表的复制
    请实现copyRandomList函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个next指针指向下一个节点,还有一个random指针指向链表中的任意节点或者null。思路1:利用......
  • 合并单链表
    用尾插法合并单链表算法思想:让头指针p指向空,用来构建链表Z,用m和n来遍历X和Y,逐个把较小的结点尾插进链表Z中,之后把剩余的链表尾插进Z的后面,形成新链表Z。伪代码如下:void......
  • 203. 移除链表元素
    203.移除链表元素给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val==val的节点,并返回新的头节点。 示例1:输入:head=[1,2,6,3,4......
  • C语言基于单链表的词典软件
    C语言基于单链表的词典软件实验1:日期:2022-10-4类型:设计型题目:基于单链表的词典软件内容:利用单链表存储词典,可以实现从文件中加载数据、查询单词、添加词条、删除词条......
  • 环形链表
    环形链表一,题目描述给定一个链表的头节点,判断链表中是否存在环。存在返回true,不存在返回false。二,解题思路如果链表无环,遍历后最终都会指向null。如果有环,会重复遍历。......
  • 链表的逆置
    本题要求实现一个函数,将给定单向链表逆置,即表头置为表尾,表尾置为表头。链表结点定义如下:structListNode{intdata;structListNode*next;};函数接口定义......
  • TZOJ 7871:维护序列 单链表应用(创建/查询/插入/删除)
    描述 给定一个长度为n的整数序列。现在有m个操作,操作分为三类,格式如下:(1)1i:询问序列中第i个元素的值,保证i小于等于当前序列长度。(2)2iv:在序列中第i个元素前加......