zoukankan      html  css  js  c++  java
  • 刷题52—链表的中间结点

    89.链表的中间结点

    题目链接

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/middle-of-the-linked-list

    题目描述

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

    关键技术

    把链表中的值放到数组中。

    题目分析

    1. 因为链表不能通过下标访问元素,所以遍历链表,把链表中的元素放到数组中;
    2. 输出数组中的中间值。
    3. 注意:如果有两个中间值,返回第二个中间值。
    /**
     * Definition for singly-linked list.
     * function ListNode(val) {
     *     this.val = val;
     *     this.next = null;
     * }
     */
    /**
     * @param {ListNode} head
     * @return {ListNode}
     */
    var middleNode = function(head) {
        if(!head) return;
        let res = [];
        while(head){
            res.push(head);
            head = head.next;
        }
        return res[Math.floor(res.length/2)];
    };
    

      

  • 相关阅读:
    『笔记』数学数论(八)
    『笔记』BSGS
    『笔记』组合数学(六)
    01 分数规划
    高斯消元
    拉格朗日插值法
    洛谷网课数论
    [IOI2013]robots 机器人
    P3530 [POI2012]FES-Festival
    NOIP 2015 day1
  • 原文地址:https://www.cnblogs.com/liu-xin1995/p/12549728.html
Copyright © 2011-2022 走看看